账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vuex,如何调用modules里面定义的mutations
    34
    0

    状态可以拿到,鼓捣了好久。不懂定义在模块里面的mutations、getters、actions要怎么调用?

        const mA = {
          state : {
            a : 1,
            b : 1,
          },
          // 模块的局部 mutations
          mutations : {
            add : state =>{
              state.a++
            },
          },
          getters : {
            double : state=> {
              return state.a *2
            }
          }
        }
        const mB = {
          state : {
            a : 2,
            b : 2,
          },
          // 模块的局部 mutations
          mutations: {
            addB: state => {
              state.a++
            },
          },
          // 模块的局部 actions
          actions : {
            asyncAdd : ({commit, rootState ,state}) =>{
              setTimeout(() => {
                commit('add');
              }, 1000);
            }
          }
        }
        const store = new Vuex.Store({
          modules : {
            a : mA,
            b : mB,
          }
        });
        console.log(store.state.a);
    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 十年卧雪 普通会员 1楼

      在Vuex中,可以通过import语句导入模块中的mutations。例如:

      javascript import { mutations } from './mutationTypes';

      然后,可以在需要使用mutations的地方使用这个导入。

      例如,如果你想在组件的created钩子中使用mutations,可以这样做:

      javascript created() { mutations.updateTitle(this.$store.state.title); }

      这将在组件的created钩子中调用mutations中的updateTitle方法。

      另外,你也可以在actions中使用mutations。例如,如果你想在actions中使用 mutations,可以这样做:

      javascript export default { name: 'updateTitle', methods: { updateTitle() { mutations.updateTitle(this.$store.state.title); } } };

      这将在actions中调用mutations中的updateTitle方法。

      请注意,每个mutation都有一个对应的action。如果你想在actions中使用一个mutation,你需要在actions中定义一个方法,该方法将触发mutation的执行。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部