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

时间:2018-08-30 17:04:32

标签: javascript laravel vue.js axios

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

现在,我想在两个不同的地方(两条路线)中使用此组件-有关此特定汽车型号的页面,例如ex。显示最新型号的主页。页面上始终只有一辆车,而没有列出多辆车。

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

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

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

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

B。在这两个页面上,我都将发出此Ajax请求(不在组件中,通过在路径视图中),然后将其传递给组件已接收到的有关car的数据。该组件将仅用于显示内容,而不会发出任何请求。

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

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

也许A和B是错的,我应该再做些其他事情吗?

1 个答案:

答案 0 :(得分:1)

我更喜欢选项A,因为这样您就只能获取所需的信息,但是如果您需要同时显示有关汽车的信息,那么我建议您首先获取所有信息。

希望此资源对您有所帮助:https://codeburst.io/how-to-call-api-in-a-smart-way-2ca572c6fe86