Почему руководство Netlify CMS Nuxt использует хранилище Vuex в одних компонентах и ​​require () непосредственно в других? - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь понять, почему руководство Netlify CMS Nuxt решило реализовать способ, которым они это сделали:

Заполнение хранилища всеми сообщениями в блоге в nuxtServerInit ():

export const state = () => ({
  blogPosts: [],
});

export const mutations = {
  setBlogPosts(state, list) {
    state.blogPosts = list;
  },
};

export const actions = {
  async nuxtServerInit({ commit }) {
    let files = await require.context('~/assets/content/blog/', false, /\.json$/);
    let blogPosts = files.keys().map(key => {
      let res = fi
les(key);
      res.slug = key.slice(2, -5);
      return res;
    });
    await commit('setBlogPosts', blogPosts);
  },
};

Используя хранилище, которое они только что заполнили, чтобы заполнить страницу "индекса блога":

export default {
  computed: {
    blogPosts() {
      return this.$store.state.blogPosts;
    },
  },
};

, но затем не использовали хранилище на отдельных страницах блога, вместо этого использовали require:

export default {
  async asyncData({ params, payload }) {
    if (payload) return { blogPost: payload };
    else
      return {
        blogPost: await require(`~/assets/content/blog/${params.blog}.json`),
      };
  },
};

Быстрее ли используется требование на отдельных страницах блога? Почему вы не могли просто пройти через магазин oop (при условии, что в блоге не так много постов) и найти то, что вам нужно?

Возможно, это тривиально, но поскольку Netlify написал это таким образом, я Я полагаю, что есть веская причина.

Это связано с Webpack, или больше с Vue и Vuex, или с Nuxt?

...