Сохранение стека и состояния при навигации между страницами - PullRequest
0 голосов
/ 18 октября 2019

У нас есть чистое JS-приложение, построенное по принципу MVC, которое имеет собственный контроллер Nav. Сейчас мы пытаемся переместить его в VUE и испытываем трудности с маршрутизацией.

В настоящее время прямая навигация в старом приложении JS работает следующим образом:

Nav.setRoot(HomePage);
Nav.push(SecondPage);
Nav.push(DialogPage);

Это создает стек из 3 страниц. элементы один поверх другого. Со страницей диалога это просто небольшое всплывающее окно. Это сохраняет стек страниц и всех их данных.

<div class="page" id="page-HomePage" hidden></div>
<div class="page" id="page-SecondPage"visible></div>
<div class="page" id="page-DialogPage" visible active></div>

Очевидно, что при вызове Nav.back () последняя страница будет уничтожена, ее элемент будет удален из DOM, открывая предыдущие страницы:

<div class="page" id="page-HomePage" active></div>
<div class="page" id="page-SecondPage" deleting></div>
<div class="page" id="page-DialogPage" deleted></div>

В VUE, когда мы звоним

this.$router.push({name:"HomePage"});
this.$router.push({name:"SecondPage"});
this.$router.push({name:"DialogPage"});

Мы уничтожаем все предыдущие страницы сразу же! Поэтому, когда мы возвращаемся назад, страница воссоздается, и все ее состояние теряется.

<keep-alive> - работает только для одной предыдущей страницы.

Есть ли способ сохранить стеки состояние страниц в VUE или я пытаюсь сделать что-то, для чего VUE не предназначен?

Реализация управления состоянием для чего-то подобного выглядит излишним для меня.

Нужно ли мне внедрятьмой собственный контроллер навигации для решения этой задачи?

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