vuex namespaced的作用以及使用方式
Posted junjun-001
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vuex namespaced的作用以及使用方式相关的知识,希望对你有一定的参考价值。
vuex中的store分模块管理,需要在store的index.js中引入各个模块,为了解决不同模块命名冲突的问题,将不同模块的namespaced:true,之后在不同页面中引入getter、actions、mutations时,需要加上所属的模块名
1、声明分模块的store时加上namespaced:true
1 // initial state 2 const state = { 3 userId:‘‘,//用户id 4 userName:‘‘,//用户名称 5 token:‘‘,//token 6 permission:‘‘//权限 7 } 8 9 // getters 10 const getters = { 11 // 获取用户信息 12 getUserInfo(){ 13 return state; 14 } 15 } 16 17 // actions 18 const actions = {} 19 20 // mutations 21 const mutations = { 22 setUserInfo(state,payload) { 23 console.log("payload:"+payload); 24 console.info(payload); 25 state.userId = payload.userId; 26 state.userName = payload.userName; 27 state.token = payload.token; 28 state.permission = payload.permission; 29 } 30 } 31 32 export default { 33 namespaced: true, 34 state, 35 getters, 36 actions, 37 mutations 38 }
2、使用模块中的mutations、getters、actions时候,要加上模块名,例如使用commint执行mutations时
格式:模块名/模块中的mutations
xxx/setUserInfo
1 this.$store.commit("userInfo/setUserInfo",userInfo)
3、获取属性时同样加上模块名
格式:store.state.模块名.模块属性
1 $store.state.userInfo.userName
原文链接:https://blog.csdn.net/fuck487/article/details/83411856
以上是关于vuex namespaced的作用以及使用方式的主要内容,如果未能解决你的问题,请参考以下文章
vuex技术多组件共享数据-vuex模块化+namespace
vuex中使用多模块时,如果不同模块中action有名字冲突该如何解决
有没有办法在其动作或突变中获取 nameSpaced vuex 模块的名称?
There is no Action mapped for namespace [/] and action name [m_hi] associated with context path [](代