Компонент делает GET-запрос на mount () и поддерживает ответ на дочерний компонент.Что произойдет, если я введу URL, который идет прямо к дочернему компоненту? - PullRequest
0 голосов
/ 13 февраля 2019

Итак, представьте, что у меня есть эти 2 URL:

example.com/Profile
example.com/Profile/City

Когда посещается example.com/Profile, я представляю компонент Profile, а когда посещаю example.com/Profile/City, я представляю компонент City.

Мне нужно сделать запрос GET, который возвращает информацию, используемую в обоих компонентах.В настоящее время я выполняю этот запрос GET в хуке жизненного цикла mount () обоих компонентов, но мне было интересно, могу ли я сделать это один раз только в родительском компоненте Profile, а затем просто перенести его в City, чтобы я мог избавиться от 1GET request.

Однако я не уверен, что произойдет, если пользователь наберет example.com/Profile/City?Учитывая, что запрос GET выполняется на mount () компонента Profile, а мы не смонтировали Profile, поскольку пользователь набрал URL-адрес, который ведет к компоненту City, и получу ответ в дочернем компоненте

1 Ответ

0 голосов
/ 13 февраля 2019

Учитывая, что запрос GET выполняется для mount () компонента Profile, и мы не смонтировали Profile, поскольку пользователь набрал прямой URL-адрес, ведущий к компоненту City, получу ли я ответ в дочернем компоненте?

Нет, не будете.У вас не будет данных.

Мне было интересно, смогу ли я сделать это один раз только в родительском компоненте Profile, а затем просто перенести его в City, чтобы я мог избавиться от 1 GETзапрос.

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

Тогда вы сможете реализовать логикув вашем действии vuex, которое пропустит запрос, если данные уже присутствуют (т. е. от посещения ранее /profile).Но в этом случае вы должны сохранить некоторую временную метку, чтобы не кэшировать данные бесконечно.

Если вы ожидаете, что данные будут часто меняться, я бы вообще не кэшировал их, а скорее сделаюкаждый раз повторяющийся запрос, чтобы гарантировать, что данные являются как можно более свежими.

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