首页 > 技术文章 > vuex namespaced的作用以及使用方式

junjun-001 2020-03-22 14:55 原文

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

推荐阅读