使用Vuex的时候,通常会实例化Store类,然后传入一个对象,包括我们定义好的actions、getters、mutations、state等。store的构造函数:
export class Store {
constructor (options = {}) {
// 若window内不存在vue,则重新定义Vue
if (!Vue && typeof window !== 'undefined' && window.Vue) {
install(window.Vue)
}
if (process.env.NODE_ENV !== 'production') {
// 断言函数,来判断是否满足一些条件
// 确保 Vue 的存在
assert(Vue, `must call Vue.use(Vuex) before creating a store instance.`)
// 确保 Promsie 可以使用
assert(typeof Promise !== 'undefined', `vuex requires a Promise polyfill in this browser.`)
assert(this instanceof Store, `store must be called with the new operator.`)
}
// 解构赋值,拿到options里的plugins和strict
const {
plug