как я могу заменить vuex на управление состоянием клиента apollo? - PullRequest
1 голос
/ 07 мая 2020

Я новичок в apollo-client, и я хотел заменить vuex для управления состоянием, имея в виду, что я могу как-то централизованно размещать свои мутации и запросы, как это делает vuex? большинство найденных мною руководств и документов вызывают запросы и изменения в каждом компоненте, которые могут вызывать повторение запросов и мутацию, так как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 09 мая 2020

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

Apollo не местный хранить данных, это структурированный способ доступа к удаленным данным. Это скорее замена Ax ios, чем Vuex.

В случае Apollo повторение запроса - неплохая вещь, потому что Apollo имеет довольно умную стратегию кеширования . Вы можете вызывать запросы с помощью fetchPolicy: 'cache-first', чтобы Apollo не обновлял уже полученные данные.

(Теперь, если данные часто меняются, например, в приложении чата, вы можете не хотите полагаться только на кэшированные данные. Это решение, которое вы принимаете для каждого запроса.)

Тем не менее, я бы не использовал Apollo для хранения локальных данных, которые предназначен для переноса со страницы на страницу (например, в корзине электронной коммерции). Для этого я бы остановился на Vuex.

0 голосов
/ 07 мая 2020

Вы должны создать файлы .js или .ts с соответствующими query или mutation. Затем, если вы не хотите хранить state в системе управления состоянием клиента Apollo , вы можете просто позвонить в соответствующую службу управления состоянием в Vue. js. Я работаю с React. js, поэтому в моем случае я бы использовал Context API, я уверен, что вы можете найти то же самое для Vue. js .

Ознакомьтесь с этими ссылками о том, как реализовать Context API аналогично React. js:

...