【发布时间】: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