Vue - использовать axios в представлении компонента или маршрута? - PullRequest
0 голосов
/ 30 августа 2018

Например, у меня есть сайт об автомобилях. У меня есть компонент под названием CarData, который отображает марку, модель, фотографии и т. Д. О конкретном автомобиле. Все хранится в базе данных, доступной REST (каркас laravel), например, под «/ cars / 5» возвращает JSON с данными для автомобиля с идентификатором 5.

Теперь я хочу использовать этот компонент в двух разных местах, на двух маршрутах - на странице об этой конкретной модели автомобиля и в качестве примера. домашняя страница, где показана последняя модель. На странице всегда указана одна модель автомобиля, без указания нескольких автомобилей.

Я думаю, что могу сделать это двумя способами:

A. На обеих страницах я поставлю компонент и передам ID автомобиля в качестве реквизита:

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

Затем в компоненте я получу этот реквизит идентификатора машины и сделаю запрос ajax (по оси), чтобы получить информацию об идентификаторе машины 5 и отобразить в этом компоненте.

B. На обеих страницах я сделаю этот ajax-запрос (не в компоненте, а в виде маршрута), а затем передам компоненту уже полученные данные об автомобиле. Компонент будет использоваться только для отображения контента, без каких-либо запросов.

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

Обычно я бы выбрал вариант «A», потому что повторять одни и те же запросы ajax мне не подходит, но где-то я нашел такой текст Msgstr "Компоненты не должны обращаться к axios напрямую." Поэтому я не знаю, как к этому относиться.

Может быть, А и В не правы, и я должен сделать что-то еще?

1 Ответ

0 голосов
/ 30 августа 2018

Я предпочитаю вариант А, поскольку таким образом вы получаете только ту информацию, которая вам нужна, но если вам нужно отобразить информацию о более чем автомобиле в то время, я рекомендую вам сначала получить всю информацию.

Надеюсь, этот ресурс поможет вам немного больше: https://codeburst.io/how-to-call-api-in-a-smart-way-2ca572c6fe86

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...