Для некоторых context : я собираю данные из моего API с помощью ax ios и добавляю их в хранилище Vuex в моем приложении Nuxt с помощью nuxtServerInit
. Я использую модули с пространством имен , как рекомендовано в документации, для отправки запросов из моего index.js
файла.
Проблема заключается в том, что пока технически работает (все правильно настроено в магазине), я получаю длинный список выражений await dispatch(...)
в моем файле index.js
. Похоже, это не очень эффективный подход (или предполагаемое использование, так как я не могу найти подобную конфигурацию ни в одном из документов), и мне интересно, неправильно ли я понял документацию ax ios или nuxt в моя реализация. Я изучал Promise.all()
, но не вижу, как бы я это реализовал здесь. Надеюсь, у кого-нибудь есть совет!
Это пример конфигурации, к которой я пришел с этим подходом:
app/store/index.js
export const actions = {
async nuxtServerInit ({ commit, dispatch }) {
await dispatch('endpointOne/storeDispatchInit')
await dispatch('endpointTwo/storeDispatchInit')
await dispatch('endpointThree/storeDispatchInit')
...
...
}
}
app/store/endpointOne.js
export const actions = {
async storeDispatchInit ({ commit }) {
const { data } = await axios.get(`${this.$axios.defaults.baseURL}/endpoint-1`)
commit('SET_ALL', data)
}
}
Я также был бы рад услышать, что в конце концов это правильная конфигурация ...!