vuex中如何去创建多个store对象
时间: 2024-05-16 11:16:15 浏览: 163
在Vuex中,每个应用程序只能有一个store对象,因为store对象是应用程序状态的单一来源。如果需要创建多个store对象,可以使用Vuex插件来实现。具体步骤如下:
1. 创建一个Vuex插件,该插件包含多个store对象,并将这些store对象绑定到不同的命名空间中。
```javascript
const myPlugin = {
install(Vue, options) {
Vue.mixin({
beforeCreate() {
if (this.$options.store) {
this.$store = this.$options.store;
} else if (this.$options.parent && this.$options.parent.$store) {
this.$store = this.$options.parent.$store;
}
},
});
const store1 = new Vuex.Store({
state: { ... },
mutations: { ... },
actions: { ... },
getters: { ... },
modules: { ... },
});
const store2 = new Vuex.Store({
state: { ... },
mutations: { ... },
actions: { ... },
getters: { ... },
modules: { ... },
});
Vue.prototype.$store1 = store1;
Vue.prototype.$store2 = store2;
},
};
```
2. 在Vue应用程序中使用该插件。
```javascript
import Vue from 'vue';
import Vuex from 'vuex';
import myPlugin from './my-plugin';
Vue.use(Vuex);
Vue.use(myPlugin);
new Vue({
store: this.$store1,
render: (h) => h(App),
}).$mount('#app1');
new Vue({
store: this.$store2,
render: (h) => h(App),
}).$mount('#app2');
```
上述代码中,我们使用了Vue.mixin()方法将store对象绑定到Vue实例中。然后,我们创建了两个store对象,并将其绑定到Vue.prototype上,这样我们就可以在Vue组件中通过this.$store1和this.$store2来访问这些store对象了。最后,在Vue应用程序中使用这些store对象即可。
阅读全文