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