【发布时间】:2019-04-20 04:12:52
【问题描述】:
我对 Vue 非常陌生,所以请原谅我在这里缺乏知识。
-
在我的一个(子)组件
(Product_Collection.vue)中,我提出了一个 axios 请求,通过他们的 GraphQL API 从我的 Shopify 商店获取一些产品:data: () => { return { products: null } }, methods: { getProducts: function(){ // 1. axios code here... // 2. ...then assign result to "this.products" data property } } 产品显示为缩略图(假设有 10 件 T 恤)。然后,我单击产品以查看更多详细信息以及更多产品信息和图像等(非常类似于亚马逊的体验)。
产品在
Product_Single.vue组件中单独显示。到目前为止一切顺利。
但问题来了……
- 当我点击返回产品页面
(Product_Collection.vue)(上面有 10 件 T 恤的页面)时,再次调用 Shopify API 的 axios 请求,并且从头开始重新渲染组件。
我的问题是如何告诉 Vue 在每次渲染组件时停止从 Shopify API 获取数据?谢谢
【问题讨论】:
-
您可以使用
vuex存储数据以检查数据是否可用。仅在未拉取数据时请求获取数据。 vuex.vuejs.org/guide -
这似乎是个好主意,毫无疑问它会起作用,但对于这样一个简单的问题,它似乎有点过于复杂。我考虑在组件上使用
<keep-alive>,因为这听起来像是为这种类型的场景设计的,但它并没有像我预期的那样工作 - 老实说我可能没有正确使用它或者我误解了它目的。
标签: javascript vue.js axios shopify vue-component