您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“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怎么模塊化編碼和命名空間”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。