vuex的命名空间有哪些_Vuex模块:开启命名空间

模块开启命名空间后,享有独自的命名空间。

{"模块1":{

state:{},

getters:{},

mutations:{},

actions:{}

},"模块2":{

state:{},

getters:{},

mutations:{},

actions:{}

}

}

mapState、mapGetters、mapMutations、mapActions第一个参数是字符串(命名空间名称),第二个参数是数组(不需要重命名)/对象(需要重命名)。

mapXXXs('命名空间名称',['属性名1','属性名2'])

mapXXXs('命名空间名称',{'组件中的新名称1':'Vuex中的原名称1','组件中的新名称2':'Vuex中的原名称2',

})

一 项目结构

二 main.js

import Vue from "vue";

import App from"./App.vue";

import router from"./router";

import store from"./store/index";

Vue.config.productionTip= false;newVue({

router,

store,

render: h=>h(App)

}).$mount("#app");

三 index.js

import Vue from "vue";

import Vuex from"vuex";

import cat from"./modules/cat";

import dog from"./modules/dog";

Vue.use(Vuex);

exportdefault newVuex.Store({

modules: { cat, dog }

});

四 cat.js

export default{

namespaced:true,//局部状态

state: {

name:"蓝白英短",

age:1},//局部读取

getters: {

desc: state=> "宠物:" +state.name

},//局部变化

mutations: {

increment(state, payload) {

state.age+=payload.num;

}

},//局部动作

actions: {

grow(context, payload) {

setTimeout(()=>{

context.commit("increment", payload);

},1000);

}

}

};

五 dog.js

export default{

namespaced:true,//局部状态

state: {

name:"拉布拉多",

age:1},//局部读取

getters: {

desc: state=> "宠物:" +state.name

},//局部变化

mutations: {

increment(state, payload) {

state.age+=payload.num;

}

},//局部动作

actions: {

grow(context, payload) {

setTimeout(()=>{

context.commit("increment", payload);

},1000);

}

}

};

六 HelloWorld.vue

Vuex状态树

{{this.$store.state}}

mapState

{{catName}} {{catAge}}
{{dogName}} {{dogAge}}

mapGetters

{{catDesc}}
{{dogDesc}}

mapMutations

猫变化

狗变化

mapActions

猫动作

狗动作

exportdefault{

name:"HelloWorld",

computed: {

...mapState("cat", {

catName:"name",

catAge:"age"}),

...mapState("dog", {

dogName:"name",

dogAge:"age"}),

...mapGetters("cat", {

catDesc:"desc"}),

...mapGetters("dog", {

dogDesc:"desc"})

},

methods: {

...mapMutations("cat", { catIncrement: "increment"}),

...mapMutations("dog", { dogIncrement: "increment"}),

...mapActions("cat", { catGrow: "grow"}),

...mapActions("dog", { dogGrow: "grow"})

}

};

七 运行效果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值