Я занимаюсь разработкой одностраничного приложения с использованием Vuex и Vue-router.
В настоящее время у меня есть хранилище, состоящее из большого объекта, скажем X, загруженного из базы данных с идентификатором.Я использую Vue-router для навигации между страницами SPA.
Время от времени пользователь может захотеть загрузить другую версию X из базы данных.При этом я также хочу переместить пользователя на «стартовую страницу».И на «стартовой странице», и на странице, на которой сейчас находится пользователь, будет отображаться много информации, полученной из магазина через вычисленные свойства.
Как я вижу, есть два способа справиться с этим, но ни один из ниххороши:
- Я загружаю новый объект в хранилище и затем нажимаю на роутер.
- Проблема: когда я загружаю объект в хранилище из бэкэнда, вся реактивность начинает происходить, и текущая страница, на которой находится пользователь, будет читать новую информацию и вести себя странно.
- Сначала нажимаю роутер, а потом обновляюсь.
- Проблема: Это как бы наоборот.Стартовая страница теперь будет содержать всю информацию о старой версии X и только через некоторое время обновить ее до новой версии.
Для 1 и 2 я получаюколичество ошибок во внешнем интерфейсе / консоли, например, при проверке уникальности.
Одним из решений может быть сначала перейти пользователя на «страницу загрузки», затем загрузить новый объект и затем нажать маршрутизатор.
Мне кажется, это очень простой вопрос Vue, и я, вероятно, скучаю по лучшей практике.