установить данные только при первой загрузке с nuxt.js - PullRequest
0 голосов
/ 14 мая 2018

Я новичок в nuxt.js, поэтому мне интересно, что может быть лучшим способом настроить некоторые данные через API REST.

У меня есть папка магазина, подобная этой:

store
    -posts.js
    -categories.js
    -index.js

Я пытался установить данные с помощью nuxtServerInit действий в index.js:

export const actions = {
    async nuxtServerInit({ dispatch }) {
        await dispatch('categories/setCategories')
        await dispatch('posts/loadPosts','all')


      }
}

Но не работает: действия отправляются (на сервер), но данные не заданы.

Итак, я попробовал с fetch , но этот метод вызывается каждый раз, когда загружается страница, где я должен отображать сообщения. Даже если в общем макете я делаю это:

<template>
  <div>
    <Header />
    <keep-alive>
      <nuxt/>
    </keep-alive>

  </div>
</template>

Итак, мое решение на данный момент - использовать fetch таким образом, В компоненте страницы:

 async fetch({store}){
       if(store.getters['posts/getPosts'].length === 0 && store.getters['categories/getCategories'].length === 0 ){
            await store.dispatch('categories/setCategories')
            await store.dispatch('posts/loadPosts','all')
       } 
   }

Кроме того, я заметил, что fetch не работает с компонентом корневой страницы (pages / index.vue)

Мое решение, кажется, работает, но может быть есть другой лучший способ установить данные?

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