关于vuex 的模块开发和使用(二)

对于 改变vuex 内数据的操作:
commit 和 dispatch
由此开题:commit 是 同步修改,dispatch 是异步操作

commit('SET_TOKEN', result.token)
dispatch('UserPermission');

当我们使用模块化开发的时候, 会有如下项目结构:

store 
  modules (模块集)
    app.js (模块1)
    user.js (模块2)
  getters.js (getters.类似 计算属性)
  index.js (创建vuex 并导出, 在mian.js 导入,注册)

注意:在commit 和 dispatch 的时候对模块内的操作可以通过

commit('app/SET_LANG', token)
dispatch('app/UpdataLang');

方法前面加了 模块的名字:这样方便我们操作且清晰:源于 一个属性 namespaced: true,

const app = {
    state: {
        lang: 'en',
    },
    mutations: {
        SET_LANG(state, data) {
            state.lang = data;
        },
    },
    actions:{
        UpdataLang({commit}, data) {
            commit('SET_LANG', data)
        }
    },
    namespaced: true, // 就是这个属性实现的
}

export default app;

遇到的问题

1.切换语言请求头语言不改变
调试的时候,不刷新页面,config.js只能触发一次,但是request.js里面这个请求方法每次都会触发,所以在request.js里把修改的cb_lang加上就会及时触发,这样调用接口后,后端就可以返回不同的语言数据了

//request.js
header['cb_lang'] = uni.getStorageSync('locale') ? uni.getStorageSync('locale') :'zh_cn'

多语言参考:lang 参考

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值