Как проверить, собирается ли пользователь перейти на предыдущую страницу с помощью vue-router? - PullRequest
0 голосов
/ 01 ноября 2019

Контекст

У меня есть этот плагин LightGallery , и я заметил, что когда он работает в полноэкранном режиме, нажатие на кнопку предыдущей страницы не закрывает LightGallery, ноперейти на «предыдущую страницу» без уведомления пользователя.

В моем случае я создаю SPA с использованием VueJS и VueRouter, и когда пользователь закрывает LightGallery после нажатия на предыдущую страницу, это сбивает с толку, поскольку пользователь ожидал вернуться туда, где он / она находился.

Я знаю, что VueRouter имеет навигационную охрану, но мне не хватает одной функции, чтобы легко узнать, возвращается ли пользователь или нет.

Я использую VueRouter в режиме «истории».

Поскольку я использую режим «истории», я думаю, это объясняет, почему плагин lg-hash для LightGallery не помогает. Это только добавляет хеш к моему маршруту, но VueRouter работает независимо от этого хеша.

Вопрос

Как узнать, собирается ли пользователь перейти на предыдущую страницуиспользуя VueRouter?

В режиме «истории» VueRouter использует API истории. Есть ли способ использовать его, чтобы иметь ключ? Или я должен в конечном итоге вручную сохранить историю и обрабатывать ее при каждом изменении маршрута?

Я обнаружил, что мы можем прослушивать предыдущую / следующую страницу, используя window.onpopstate = function() {}, но я могу проверять только предыдущую страницу, используя толькоэтот метод?

...