阿晨1998
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,});