Проблема
У меня есть электронное приложение с vue.Поскольку у пользователя нет пользовательского интерфейса для навигации назад, я создал кнопку «Назад».Это работает до сих пор так хорошо.Но после входа в систему и на индексной странице 1004 * пользователь больше не сможет вернуться назад.Как он будет переходить к входу в систему, но будет перенаправлен обратно на страницу индекса.И это не имеет особого смысла.Для этого я хочу отключить кнопку возврата.
Протестировано
Я добавил глобальную переменную, чтобы получить предыдущий маршрут в моих компонентах.Но почему-то это портится при нажатии дважды или чаще.Это выглядит так:
router.beforeEach((to, from, next) => {
Vue.prototype.$prevRoute = from;
return next();
});
Я думаю, это потому, что при переходе назад предыдущий маршрут изменился на маршрут, с которого вы шли.И больше не история.
Кажется, есть запрос функции github для добавления реферера, но он был открыт в 2016 году, и я не уверен, что это снова будет та же проблема, что и выше.https://github.com/vuejs/vue-router/issues/883
Встроенные элементы защиты
Я также протестировал beforeRouteLeave
и beforeRouteUpdate
, но, поскольку в моем макете есть кнопка возврата, эти методы не называются.
Application-design
У меня есть страница входа с аутентификацией.После этого информация о пользователе сохраняется в локальном хранилище, и я использую концепцию промежуточного программного обеспечения для перенаправления (https://markus.oberlehner.net/blog/implementing-a-simple-middleware-with-vue-router/)
. Чтобы вернуться назад, я использую этот метод: this.$router.back()
Ожидание
Мой ожидаемый результат - возможность проверить в компоненте back-button, будет ли обратный маршрут входом в систему или если в стеке возврата есть только одно значение.В этом случае я бы отключил кнопку возврата.