У меня есть маршрут: https://localhost/search/. Я не использовал параметр поиска в параметре маршрутизации на стороне клиента vuejs. Запрос отправляется на конечную точку api, которая отправляется как текст поиска и page_no в качестве параметров, и это дает мне результат. Я смотрю параметры page_no для отправки запроса, когда мы идем туда и обратно в браузере. Но проблема в том, что при изменении текста поиска, как я могу вернуться из браузера с конкретным текстом поиска. Я думал о предоставлении текста поиска в маршрутизации на передней панели, но я хочу этого избежать.
Когда вы переходите к новому результату поиска, вы должны называть pushState самостоятельно. Поскольку vue-router
не будет нажимать другое состояние, если маршрут назначения совпадает с текущим. Затем вам нужно обработать событие onpopstate
для обновления SearchComponet
.
window.onpopstate = function(event) {
alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
};
history.pushState({query: "a"}, null);
Первый аргумент pushState
- это объект состояния. Объект состояния является объектом JavaScript, который связан с новой записью истории, созданной pushState(). Всякий раз, когда пользователь переходит в новое состояние, запускается событие popstate, а свойство состояния события содержит копию объекта состояния записи истории.