vuex命名空间的使用
目录
因此,Vuex 允许我们将 store 分割成模块(module),每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块。
默认情况下,模块内部的 action、mutation 和 getter 是注册在全局命名空间的,这样使得多个模块能够对同一 mutation 或 action 作出响应。如果希望你的模块具有更高的封装度和复用性,此时就用到了命名空间这个概念。
{"模块1":{state:{},getters:{},mutations:{},actions:{}},"模块2":{state:{},getters:{},mutations:{},actions:{}}}
mapState、mapGetters、mapMutations、mapActions第一个参数是字符串(命名空间名称),第二个参数是数组(不需要重命名)/对象(需要重命名)。
mapXXXs('命名空间名称',['属性名1','属性名2'])mapXXXs('命名空间名称',{'组件中的新名称1':'Vuex中的原名称1','组件中的新名称2':'Vuex中的原名称2',})
项目结构
文章图片
mian.js
import Vue from "vue"; import App from "./App.vue"; import router from "./router"; import store from "./store/index"; Vue.config.productionTip = false; new Vue({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); export default new Vuex.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); }}};
hello.vue
Vuex状态树
{{this.$store.state}}mapState
{{catName}} {{catAge}}{{dogName}} {{dogAge}}mapGetters
{{catDesc}}{{dogDesc}}mapMutations
mapActions
【vuex命名空间的使用】运行效果
文章图片
到此这篇关于vuex命名空间的使用的文章就介绍到这了,更多相关vuex命名空间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- Leetcode2两数相加(链表应用)
- 计算机网络mss的默认值,计算机网络填空
- el-button|el-button 配合 vuex 根据条件动态 disable
- Notes|Python: 如何去除字符串多余的空格、换行符(二)
- 【Python字符串方法 】大小写转换、删除空白字符、字符串对齐
- 笨叔(用4维空间来理解进程负载)
- Java8新特性Optional类处理空值判断回避空指针异常应用
- 初学者能学会的数据结构与算法|数算部分-----第一节----算法的时空复杂度
- JS警惕空数组陷阱
- nRF|nRF Connect SDK(NCS)/Zephyr固件升级详解 – 重点讲述MCUboot和蓝牙空中升级