Как я могу предварительно получить данные о Vue SSR? - PullRequest
0 голосов
/ 29 мая 2020

Несколько дней пытаюсь добавить SSR на свой Vue. js сайт. Удалось заставить тело работать, но возникла проблема с предварительной выборкой данных. Исходя из этого: https://ssr.vuejs.org/guide/data.html#data -store Я добавил хранилище, и мой компонент использует хранилище для предварительной выборки данных для рендеринга:

Item. vue :

// Server-side only
// This will be called by the server renderer automatically
serverPrefetch () {
    // return the Promise from the action
    // so that the component waits before rendering
    return this.fetchItem(2)
},

// Client-side only
mounted () {
    // If we didn't already do it on the server
    // we fetch the item (will first show the loading text)
    if (!this.item) {
        this.fetchItem(3)
    }
},

methods: {
    fetchItem (param) {
        // return the Promise from the action
        return this.$store.dispatch('fetchItem', param)
    }
}

store. js:

actions: {
    fetchItem ({ commit }, id) {
        // return the Promise via `store.dispatch()` so that we know
        // when the data has been fetched
        return axios.get('http://localhost:81/api/blah/' + id).then(item => {
                commit('setItem', { id, item });
        })
    }
},

Не было запроса на серверную часть, поэтому я добавил параметры, чтобы увидеть, какая из них выполняется . Из журналов API видно, что есть только один запрос, но он всегда со стороны клиента: всегда с параметром 3. Когда клиент отключен - все еще нет запроса от серверной части.

Похоже, что serverPrefetch () никогда не выполнялся.

Есть идеи, как заставить его работать?

...