用NuxtJS延迟加载Vuex模块

时间:2019-03-20 07:24:01

标签: javascript vuejs2 vuex nuxt.js

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

我在哪里做错了?

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

我在哪里做错了?

1 个答案:

答案 0 :(得分:0)

store.registerModule不返回诺言,因此就没有了。您只需调用它,然后进行调度即可。

您还可以保留State选项。阅读本期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既可以在服务器端的客户端导航上运行,也不能在asyncData中做到。像创建的钩子这样的东西会更好地工作