vuex _mutations[type] 为什么是以函数为元素的数组呢?
vuex _mutations[type] 为什么是以函数为元素的数组呢?
直接是一个函数不行吗?
回答:
https://github.com/vuejs/vuex...
...
const entry = store._mutations[type] || (store._mutations[type] = [])
...
源码里这里初始化就是数组。
至于为什么,是因为 Vuex 里 Mutation 可能是重名的。试想假设存在这样的代码:
const store = new Vuex.Store({ state: {},
mutations: {
['foo/bar']() {}
},
modules: {
foo: {
namespaced: true,
state: {},
mutations: {
bar () { }
}
}
}
})
console.log(store._mutations);
你就会得到两个 Mutation Handler 了。
P.S. 其实我觉得这个设计不是很好,看着模块间“我隔离了、我装的.jpg”,但这个是借鉴了 Redux 的,Redux 就这样。等 Pinia 再成熟一些吧,就可以不用 Vuex 了。
以上是 vuex _mutations[type] 为什么是以函数为元素的数组呢? 的全部内容, 来源链接: utcz.com/p/936518.html