gpt4 book ai didi

vue.js - Vuejs - vuex 延迟加载

转载 作者:搜寻专家 更新时间:2023-10-30 22:21:32 25 4
gpt4 key购买 nike

我有一个相当大的 VueJS SPA,我只想使用延迟加载在某些路由上加载 vuex 模块。

我关注这篇文章是为了重现这一点 - https://alexjoverm.github.io/2017/07/16/Lazy-load-in-Vue-using-Webpack-s-code-splitting/

然而,这在 vuex 中给我一个错误。

文件夹结构

root
|- store
| |- modules
| | |- auth.js
| | |- module2.js
| |- store.js
|- app.js

auth.js

const state = {
var1: {},
var2: false
}

const mutations = {
'MUTATION_1'(state, obj) {
// logic
}
}

const actions = {
action1({commit}) {
// logic
}
}

const getters = {
var1: state => state.var1,
var2: state => state.var2
}

export default {
state,
mutations,
actions,
getters
}

store.js -

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);
const store = new Vuex.Store();

import('./modules/auth.js').then(auth => {
store.registerModule('/login', auth);
});

export default store;

应用程序.js -

import Vue from 'vue';
import store from './store/store';
import VueRouter from 'vue-router';
import { routes } from './routes/routes';

// vue-router config
Vue.use(VueRouter);

const router = new VueRouter({
mode: 'history',
routes
});

const app = new Vue({
el: '#app',
store,
router
});

错误-

[vuex] unknown getter: var1

有什么建议吗?

最佳答案

store.registerModule('/login', auth);

上面的代码用 login 的命名空间注册了 auth 模块,所以为了从商店访问它的状态、getter、突变和操作,你必须在前缀所有具有路径 login/ 的用户。您收到错误是因为您可能在本应调用 store.getters['login/var1'] 时尝试了 store.getters.var1

关于vue.js - Vuejs - vuex 延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51445256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com