这是Vuex populate data from API call at the start的后续问题。
我已成功运行nuxtServerInit
来全局初始化vuex存储。但是,在将我的 index.js 记录在商店文件夹中时,我意识到它正在多次运行此行(我正在动态生成路线,通用模式和目标静态),即它运行{{1} }生成的每条路线。
store / index.js
nuxtServerinit
_slug.vue
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
}
}
在运行<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>
时,
似乎对于每个 slug.vue 组件,npx nuxt export
都在运行,这在我动态创建许多_slug.vue组件时会导致许多重复的nuxtServerInit
。
我想知道我是否在此过程中犯了任何错误或遗漏了一些东西。
PS:运行nuxtServerInit
可以正常工作,并且只能填充npx nuxt
一次,但是问题仅发生在nuxtServerInit
编辑:我知道这可能是默认行为,所以请问是否有任何可行的方法? (https://github.com/nuxt/nuxt.js/issues/3935)