zoukankan      html  css  js  c++  java
  • Vuex action 异步函数

    action与Mutation类似,Mutation用于同步函数,action用于异步函数。

    异步函数需要通过先action再传递到mutations,这样才能被Devtools记录下来。

    使用方法

    1 组件发布行为 dispatch

    srcApp.vue

        methods:{
          addition(){
            this.$store.commit(INCREMENT)
          },
          updateInfo(){
           // this.$store.commit('updateInfo')
            this.$store.dispatch('aUpdateInfo')
          }
        }

    2 传入actions 

    srcstoreindex.js

      actions:{
        //context 上下文
        aUpdateInfo(context){
          setTimeout(()=>{
            context.commit('updateInfo')
          },1000)
        }
      },

    3 传入mutations

    srcstoreindex.js

     mutations:{
        updateInfo(state){
          state.info.name = '喵喵'
    }
    }

    结果

    这样的异步操作就可以在Devtools里捕获到了

    带参数和回调

    1 组件发布行为 dispatch

    srcApp.vue

     updateInfo(){
           // this.$store.commit('updateInfo')
            this.$store.dispatch('aUpdateInfo','我是携带的信息')
              .then(res=>{
                console.log(res);
              })
          }

    2 传入actions 

    srcstoreindex.js

      actions:{
        //context 上下文
        aUpdateInfo(context,payload){
          return new Promise((resolve,reject)=>{
            setTimeout(()=>{
              context.commit('updateInfo')
              console.log(payload);
              resolve('我完成了')
            },1000)
          })
        }
      },

    3 传入mutations

    srcstoreindex.js

      mutations:{
        updateInfo(state){
          state.info.name = '喵喵'
        }
      },

    结果

  • 相关阅读:
    游LeetCode一月之闲谈
    新年计划与企盼
    F#周报2019年第51&52期
    F#周报2019年第50期
    F#周报2019年第49期
    F#周报2019年第48期
    F#周报2019年第47期
    F#周报2019年第46期
    F#周报2019年第45期
    关于我的随笔
  • 原文地址:https://www.cnblogs.com/polax/p/13233375.html
Copyright © 2011-2022 走看看