【发布时间】:2020-06-05 14:51:47
【问题描述】:
我正在使用 nuxt.js 并且我正在使用 Firebase 作为 API。我正在使用 nuxtServerInit 从 firebase API 获取我的所有产品。我只有 3 个类别和大约 20 种产品,因此 API 请求非常小。
这意味着我可以一次性拿到我所有的产品,然后我会发送这些产品并将它们放入我的商店。
我只是想在我开始完全构建应用程序之前先问问这是否是正确的方法?
- 使用
nuxtServerInit在 1 次调用中获取所有产品和整个 API - 将产品列表存储到商店中
- 我使用
_lodash_.get(params.id)或_.find(params.id)来查找产品的详细信息,而不是使用 Axios 再次调用的后续产品详细信息页面。
所以本质上是从 API 获取而不是使用存储进行所有其他访问,而不是通过 Axios 在所有其他页面上的异步数据?
路线 我的路线都是动态的
- 产品(列出所有产品)
- 类别(例如 t-shrits)
- 细节(衬衫的细节)
nuxtServerInit
export const actions = {
async nuxtServerInit(context){
return axios.get(URL+'/products.json')
.then(response => {
context.dispatch('products/getProducts', response.data)
})
.catch(e => context.error(e));
}
};
【问题讨论】:
-
您能否详细说明您正在维护哪些路线?
-
感谢您的澄清!我建议在
asyncData或fetch方法内对 firebase 的特定路由进行 API 调用,而不是将数据存储到VueX并访问它 -
好的,谢谢....你能给出原因吗?我想是因为我有一个小的 API,我每次都可以从商店中获取产品,而不是每次都访问 API 端点。我已经设法很容易地访问动态路线的数据
-
IMO 网络上没有小事!只从 API 中询问页面所需的那么多数据。然后,如果数据不会经常更改,您可以将其存储在浏览器级别或使用
Vuex-persist。我希望我已经回答了你的问题! -
好的,谢谢....我就是这么想的。