使用NuxtJS延迟加载Vuex模块

问题描述 投票:0回答:1

有人可以帮我懒加载Vuex模块吗?

我哪里做错了?

https://codesandbox.io/s/py197qvxx?fontsize=14

我哪里做错了?

javascript vuejs2 vuex nuxt.js
1个回答
0
投票

store.registerModule不返回promise,所以就没有了。你只需要打电话然后再发送。

还有preserveState选项。阅读本期https://github.com/nuxt/nuxt.js/issues/4370

所以你的代码将遵循:

  async asyncData({ store, params }) {
    console.log(Users);
    store.registerModule("Users", Users, { preserveState: false });
    await store.dispatch("Users/GET_USER_INFO", params.index);
  },

但asyncData中的代码在客户端或服务器上执行,而不是在两者上执行。因此,在用户页面上首次加载时,它将仅在服务器上执行,而在客户端上则不会被注册模块。所以你不能在asyncData中这样做,如果你想让它在服务器端的客户端导航上工作。像创建钩子之类的东西会更好

© www.soinside.com 2019 - 2024. All rights reserved.