Vuex最完整的模块定义

const state = {
  token: 0,
  username: "",
};

const getters = {
  isLogin: (state, getter, rootState, rootGetter) => {  
    //其中rootState, rootGetter可以访问命名空间之外的全局变量,顺序不能变。
    return state.token == "1";
  },
};


const mutations = {
  UPDATE_TOKEN(state, payload) {
    state.token = payload;
  }
};


const actions = {
  update_warn_num(store,payload) {
    let {commit,dispatch,getters,rootGetters,rootState,state} = store; //通过解构获得,顺序无所谓,但名字不能变.
    
    commit("UPDATE_TOKEN", { a: 10 });                      //访问本模块的mutation, { a: 10 }为payload
    
    commit("home/UPDATE_TEST", { a: 10 }, { root: true });    //访问全局的mutation,home/UPDATE_TEST为home模块中的UPDATE_TEST mutation,  { a: 10 }为payload

    dispatch("update_warn_num",{ a: 10 });                  //访问本模块的action, { a: 10 }为payload
    
    dispatch("home/update_test", { a: 10 }, {root: true});    //访问全局的action,home/update_test为home模块中的update_test action, { a: 10 }为payload
  },
};

export default {
  namespaced: true,
  state,
  getters,
  mutations,
  actions
};

在项目中有时就会用到在一个命名模块中 访问/调用 另一个模块的state,mutation,action等,所以把使用的普遍方法总结下来,以供需要者参考。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值