это следующий вопрос от Vuex заполняет данные из вызова API в начале .
Я успешно запустил nuxtServerInit
для глобальной инициализации своего хранилища vuex. Однако при регистрации моего index. js в папке хранилища я понял, что он запускает эту строку много раз (я динамически генерирую свои маршруты, универсальный режим и целевую статистику c), то есть он запускается nuxtServerinit
для каждого сгенерированного маршрута.
store / index. js
export const actions = {
async nuxtServerInit({ commit }, { req }) {
// fetch your backend
const db = require("~/plugins/firebase.js").db;
let doc = await db.collection("temp").doc("all_deals1").get();
let data = doc.data();
commit('set', data.deals_array);
console.log("prepopulated data"); // this log is logging once for every _slug
}
}
_slug. vue
<script>
// import { mapGetters } from "vuex";
export default {
async fetch({ store, params }) {
// let deals_array = store.state.list;
console.log("params: ", params); // params is being loaded many times as well
// console.log("store: ", store.state.list);
// get
},
// computed: {
// ...mapGetters({
// // map `this.doneCount` to `this.$store.getters.doneTodosCount`
// doneCount: "allDeals"
// })
// }
};
</script>
При запуске npx nuxt export
. Кажется, для каждого компонента slug. vue запускается nuxtServerInit
, что приводит к множеству дублированных nuxtServerInit
, когда я динамически создаю много _slug. vue компонентов.
Мне интересно, не допустил ли я ошибок по пути или что-то упустил.
PS: работает npx nuxt
отлично работает и заполняет nuxtServerInit
только один раз, но проблема возникает только с npx nuxt export
Изменить: я понимаю, что это может быть поведение по умолчанию, поэтому могу ли я спросить, есть ли какие-либо способы обойти это? (https://github.com/nuxt/nuxt.js/issues/3935)