nuxtServerInit выполняется каждый раз, когда происходит навигация - PullRequest
0 голосов
/ 06 июня 2018

Я предположил, что nuxtServerInit вызывается один раз при запуске, когда происходит SSR.Однако я понял, что nuxtServerInit выполняется каждый раз, когда я перехожу в веб-приложение.

Не понимаю ли я, что использование nuxtServerInit?

~ / pages

consoleжурнал, показывающий, что nuxtServerInit вызывается каждый раз, когда я нажимаю вокруг:

  nuxt:render Rendering url /view/list +21m
axios starting
axios done
  nuxt:render Data fetching /view/list: 444ms +0ms
  nuxt:render Rendering url /view/status +10s
axios starting
axios done
  nuxt:render Data fetching /view/status: 86ms +9s
  nuxt:render Rendering url /view/list +4s
axios starting
axios done
  nuxt:render Data fetching /view/list: 98ms +4s
  nuxt:render Rendering url / +3s
axios starting
axios done
  nuxt:render Data fetching /: 106ms +3s
  nuxt:render Rendering url /view/status +4s
axios starting
axios done
  nuxt:render Data fetching /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;

1 Ответ

0 голосов
/ 06 июня 2018

Я действительно сделал ошибку noob, используя обычные теги привязки html <a> вместо <nuxt-link>, и таким образом страницы всегда полностью отображались на стороне сервера. После выполнения замен все работает правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...