【发布时间】:2018-06-06 12:59:12
【问题描述】:
我假设 nuxtServerInit 在启动时被调用一次,当 SSR 发生时。 但是我意识到每次在 webapp 中导航时都会执行 nuxtServerInit。
我是否误解了 nuxtServerInit 的使用?
控制台日志,显示每次点击时都会调用nuxtServerInit:
nuxt:render 渲染 url /view/list +21m axios 启动 axios 完成 nuxt:render 数据获取 /view/list: 444ms +0ms nuxt:render 渲染url /view/status +10s axios 启动 axios 完成 nuxt:render 数据获取 /view/status: 86ms +9s nuxt:render 渲染 url /view/list +4s axios 启动 axios 完成 nuxt:render 数据获取 /view/list: 98ms +4s nuxt:render 渲染 url / +3s axios 启动 axios 完成 nuxt:render 取数据 /: 106ms +3s nuxt:render 渲染 url /view/status +4s axios 启动 axios 完成 nuxt:render 数据获取/view/status: 139ms +4s~/store/index.js
import Vuex from 'vuex';
const createStore = () => {
return new Vuex.Store({
state: {
myAvailableViews: [],
isViewsInitiated: false
},
mutations: {
setAvailableViews(state, views) {
state.myAvailableViews = views;
},
setViewsInit(state, isInitialized) {
state.isViewsInitiated = isInitialized;
}
},
actions: {
setAvailableViewsAction({ commit }) {
commit('setAvailableViews', payload);
},
async nuxtServerInit({ commit }, { req }) {
console.log('axios starting');
let list = await this.$axios.get('/my/rest/api/uri');
console.log('axios done');
}
},
getters: {
getAvailableViews(state) {
return state.myAvailableViews;
},
getViewsInitiated(state) {
return state.isViewsInitiated;
}
}
});
}
export default createStore;
【问题讨论】: