vuex怎么模块化编码和命名空间

2023-02-08 22:42:23 9 0
魁首哥

vuex怎么模块化编码和命名空间

本文小编为大家详细介绍“vuex怎么模块化编码和命名空间”,内容详细,步骤清晰,细节处理妥当,希望这篇“vuex怎么模块化编码和命名空间”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

模块化编码+命名空间

小a:“为啥要开启这个捏?”山鱼:“当然是让代码更好维护,让多种数据分类更加明确。”

小a:“那如何才能做到模块化编码+命名空间呢”

山鱼:“只需要这样即可”

namespaced: true

将Count组件和Person组件里面的东西全部放到store里面

// Count的相关配置export default {    namespaced: true,    actions: {        // 奇数加法        jiaodd(context, value) {            if (context.state.sum % 2) {                context.commit('JIA', value)            }        },        // 延迟加        jiaWait(context, value) {            setTimeout(() => {                context.commit("JIA", value)            }, 500);        },    },    mutations: {        JIA(state, value) {            state.sum += value        },        JIAN(state, value) {            state.sum -= value        },    },    state: {        sum: 0, // 当前和        school: '山鱼小学',        subject: '前端',    },    getters: {        bigSum(state) {            return state.sum * 10        }    }}

2.开启命名空间后读取state的数据

  computed: {     // 自己读取    personList() {      returnthis.$store.state.personAbout.personList;    },    sum() {      returnthis.$store.state.countAbout.sum;    },  },  // 借助mapState读取computed: {    ...mapState("countAbout", ["sum", "subject", "school"]),     ...mapState("personAbout", ["personList"])   },

3.开启命名空间后,组件中读取getters数据

  computed: {      // 自己读取    firstName() {      returnthis.$store.getters["personAbout/firstPersonName"];    }  },  methods: {    // 借助mapGetters读取    // 借助mapMutations生成对应的方法,方法种会调用相应的commit去联系mutations    ...mapMutations('countAbout',{ increment: "JIA", decrement: "JIAN" }), // 对象式    ...mapActions('countAbout',{ incrementOdd: "jiaodd", incrementWait: "jiaWait" }) //对象式  },

4.开启命名空间后,组件中调用dispatch

methods: {     // 直接dispath    addWang() {      constpersonObj= { id: nanoid(), name: this.name };      this.$store.dispatch("personAbout/addNameWang", personObj);      this.name="";    },  },//借助mapGetters读取:  computed: {    ...mapGetters('countAbout',['bigSum'])  },

5.开启命名空间后,组件中调用commit

methods: {    // 直接调用    add() {      constpersonObj= { id: nanoid(), name: this.name };      this.$store.commit("personAbout/ADD_PERSON", personObj);      this.name="";    }, }  methods: {    // 借助mapMutations生成对应的方法,方法种会调用相应的commit去联系mutations    ...mapMutations('countAbout',{ increment: "JIA", decrement: "JIAN" }), // 对象式      },  }

读到这里,这篇“vuex怎么模块化编码和命名空间”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注恰卡编程网行业资讯频道。

收藏
分享
海报
0 条评论
9
上一篇:HTML5如何实现禁止android视频另存为 下一篇:jquery如何删除最后一个子元素

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码