vuex 处理异步请求的正确流程,辅助函数mapActions 在methods中解构

1.this.$store.dispatch('dispatchAct',"payload")
2.触发actions中的dispatchAct方法
actions: {
    //这里处理异步逻辑 然后提交到
    dispatchAct(item,payload){
      console.log(item,payload);
      fetch('/api/data/index.json')
      .then( (body)=> body.json() )
      .then( res => {
        //提交给mutations来进行处理 用来更改状态
        item.commit('incre',res.data)
      } )
    }
}
3.来更改状态
 mutations: {//方法 
    // 触发mutations需要使用commit方法对其进行唤醒
    // 一个事件类型type 对应 一个方法function(回调函数)
    incre:function(state,payload){
      console.log(state,payload);
      // 在mutations中触发异步操作是不合适的
      // 这是不合适的 不符合文档的规则的
      // fetch('http://chst.vip:8081/data/index.json')
      // .then( (body)=> body.json() )
      // .then( res => {
      //   console.log(res);
      //   state.arr = res.data;
      // } )
    }
 }
 methods:{
	...mapActions(['dispatchAct']),
}

 1. 在actions中定义一个类型,处理异步函数
 2. 在actions中获得异步结果之后,通过commit提交mutation,并将结果通过payload传递给mutation
 3. 在mutation中接收payload并且更改state的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值