Vuejs2 vuex模块上的延迟加载
我正在尝试对我的vuex模块使用延迟加载,如本文所述: 这是我的旧商店\index.js:Vuejs2 vuex模块上的延迟加载,vuejs2,Vuejs2,我正在尝试对我的vuex模块使用延迟加载,如本文所述: 这是我的旧商店\index.js: import Vue from 'vue'; import Vuex from 'vuex'; import app from './modules/app'; import search from './modules/search'; import identity from './modules/identity'; import profil from './modules/profil';
import Vue from 'vue';
import Vuex from 'vuex';
import app from './modules/app';
import search from './modules/search';
import identity from './modules/identity';
import profil from './modules/profil';
Vue.use(Vuex);
export default new Vuex.Store({
modules: {
app,
search,
identity,
profil,
},
});
我试着这样做:
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
const store = new Vuex.Store();
import('./modules/app').then((appModule) => {
store.registerModule('app', appModule);
});
import('./modules/search').then((searchModule) => {
store.registerModule('search', searchModule);
});
import('./modules/identity').then((identityModule) => {
store.registerModule('identity', identityModule);
});
import('./modules/profil').then((profilModule) => {
store.registerModule('profil', profilModule);
});
export default store;
但是现在我有很多错误,比如“TypeError:_vm.consultList是未定义的”,consultList是一个mapState变量,我的mapActions上也有同样的错误
我做错了什么吗?加载应用程序时,所有这些模块都将被注册,因为您最有可能将存储添加到初始vue实例中。如何通过路由器动态加载vuex模块:
{
path: "/orders/active",
name: "active-orders",
component: ActiveOrders,
props: true,
beforeEnter: (to, from, next) => {
importOrdersState().then(() => {
next();
});
}
},
然后,在我的路由器文件中,我添加了:
const importOrdersState = () =>
import("@/store/orders").then(({ orders }) => {
if (!store.state.orders) store.registerModule("orders", orders);
else return;
});