Ленивая загрузка модуля Vuex с NuxtJS

Может ли кто-нибудь помочь мне Ленивая загрузка модуля Vuex?

Где я делаю неправильно?

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

Где я делаю неправильно?

🤔 А знаете ли вы, что...
JavaScript является одним из трех основных языков веб-разработки, вместе с HTML и CSS.


1
1 310
1

Ответ:

Решено

store.registerModule не возвращает обещание, поэтому на нем нет. Вы просто звоните, а затем делаете свою рассылку.

Также вы сохраняете опцию State. Прочитать этот выпуск https://github.com/nuxt/nuxt.js/issues/4370

Таким образом, ваш код будет следующим:

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

Но код в asyncData выполняется либо на клиенте, либо на сервере, а не на обоих. Таким образом, при первой загрузке пользовательской страницы он будет выполняться только на сервере, а на клиенте модуль не будет зарегистрирован. Таким образом, вы не можете сделать это в asyncData, если хотите, чтобы он работал как на стороне клиента, так и на стороне сервера. Что-то вроде созданного хука будет работать лучше