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的工作流程,以及它的作用,使用场景

vue的通信方式---祖父孙三个级别的之间的隔代通信

vuex技术多组件共享数据-vuex模块化+namespace

vuex中使用多模块时,如果不同模块中action有名字冲突该如何解决

有没有办法在其动作或突变中获取 nameSpaced vuex 模块的名称?

There is no Action mapped for namespace [/] and action name [m_hi] associated with context path [](代