例如,我有关于汽车的网站。我有一个名为 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错了,我应该做点别的吗?