1

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

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

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

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

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

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

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

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

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

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

4

1 回答 1

1

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

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

于 2018-08-30T17:13:04.393 回答