【问题标题】:Load async data into the vuex store when Nuxt app loadsNuxt 应用加载时将异步数据加载到 vuex 存储中
【发布时间】:2020-07-24 09:50:07
【问题描述】:

我正在Nuxt 中试用一个项目。到目前为止都喜欢它,除了我对如何从外部异步服务加载数据感到有点困惑,以便从第一条路线就可以在Vuex 中使用它。

我尝试在默认布局上添加middleware 以调度存储操作,但我没有看到该服务被立即调用。只有当我更深入地导航到路线时,我才能看到已调度的操作。

我在一个标准的 Vue 项目中做了类似的事情,并将created 方法添加到App.vueNuxt有类似的方法吗?

【问题讨论】:

    标签: vue.js nuxt.js middleware


    【解决方案1】:

    您需要的是 fetch

    fetch 方法(如果已设置)会在每次加载组件之前调用(仅适用于页面组件)。它会在服务器端调用一次(在第一次向 Nuxt 应用发出请求时),在导航到更多路由时会在客户端调用。

    警告:无权通过此内部 fetch 访问组件实例,因为它是在启动组件之前调用的。

    async fetch({ store }) {
      await store.dispatch('your-action')
    }
    

    如果需要参数:

    async fetch({ store, params }) {
      await store.dispatch('your-action', params.id)
    }
    

    我举了一个 id 的例子。参数名称取决于您的页面名称。

    _id => params.id
    _slug => parmas.slug
    ...
    

    【讨论】:

      猜你喜欢
      • 2014-09-01
      • 1970-01-01
      • 2019-03-07
      • 1970-01-01
      • 2021-11-20
      • 2020-05-21
      • 2023-03-27
      • 2019-04-14
      • 1970-01-01
      相关资源
      最近更新 更多