【问题标题】:Vue - use axios in component or route view?Vue - 在组件或路由视图中使用 axios?
【发布时间】:2019-02-05 16:54:59
【问题描述】:

例如,我有关于汽车的网站。我有一个名为 CarData 的组件,它显示特定汽车的品牌、型号、照片等。所有内容都存储在数据库中,可通过 REST(laravel 框架)获得,例如在 “/cars/5”返回 JSON,其中包含 ID 为 5 的汽车的数据。

现在我想在两个不同的地方、两条路线上使用这个组件——在关于这个特定汽车模型的页面中,以及在 for ex 中。显示最新型号的主页。页面上总是只有一个车型,没有列出多辆车。

我想我可以通过两种方式做到这一点:

A.在这两个页面上,我都会放置组件并将汽车 ID 作为道具传递:

<car-data :car-id:="5"></car-data>

然后在组件中,我将获取此 car-id 属性并发出 ajax 请求(通过 axios)以接收有关汽车 ID 5 的信息并显示在此组件中。

B.在这两个页面上,我都会发出这个 ajax 请求(不是在组件中,而是在路由视图中),然后传递给已经收到关于汽车的数据的组件。组件仅用于显示内容,不发出任何请求。

<car-data :car="car"></car-data>

通常我会选择“A”选项,因为重复相同的 ajax 请求不适合我,但在某处我发现了这样的文本 “组件不应该直接访问 axios。”。所以我不知道对此有何感想。

也许A和B错了,我应该做点别的吗?

【问题讨论】:

    标签: javascript laravel vue.js axios


    【解决方案1】:

    我更喜欢选项 A,因为这样您只能获得所需的信息,但如果您当时需要显示的信息不止一辆车,我建议您先获得所有信息。

    希望这个资源对你有更多帮助:https://codeburst.io/how-to-call-api-in-a-smart-way-2ca572c6fe86

    【讨论】:

      猜你喜欢
      • 2017-07-31
      • 2020-07-28
      • 2021-02-09
      • 2021-12-29
      • 2020-02-13
      • 2018-12-12
      • 2021-10-25
      • 2020-12-21
      • 2019-07-04
      相关资源
      最近更新 更多