Vue - 在组件或路径视图中使用axios?

问题描述 投票:1回答:1

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

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

我想我可以这两种方式:

答:在这两个页面上,我将把组件和车牌ID作为道具:

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

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

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

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

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

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

javascript laravel vue.js axios
1个回答
1
投票

我更喜欢选项A,因为这样您只获得所需的信息,但如果您需要显示的信息不仅仅是汽车,我建议您先获取所有信息。

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

© www.soinside.com 2019 - 2024. All rights reserved.