3 回答
TA贡献2037条经验 获得超6个赞
Mutation
更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。Vuex 中的 mutation 非常类似于事件:每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。
严格模式
在严格模式下,无论何时发生了状态变更且不是由 mutation 函数引起的,将会抛出错误。这能保证所有的状态变更都能被调试工具跟踪到。
首先你这种做法肯定是错误的,你这样做只会更复杂。
你说需要改变的状态太多,需要写多个 mutation
来 commit
很麻烦,你可能对 mutation
有什么误解
你完全可以这样做来达到同样的效果:
const store = new Vuex.Store({
state: {
allSmallChapter: [],
},
mutations: {
saveCollection(state, payload) {
const { index, ifCollection } = payload;
state.allSmallChapter = state.allSmallChapter.map((item, itemIndex) => {
if (itemIndex === index) {
item.ifCollection = ifCollection;
}
return item;
});
},
},
});
this.$store.commit('saveCollection', {
index: 0,
ifCollection: true,
});
TA贡献1829条经验 获得超13个赞
Veux的mutations是很重要的一点,就是把处理数据逻辑方法全部放在mutations里面,使得数据和视图分离;
如果按照你那样做却是可以实现目的,但是在健壮性、可读性、维护性上来说不建议这样做的。如果你的同事或者下一位填坑的人不懂你的想法,是不是得一脸懵逼的到处骂人
添加回答
举报