我正在用Vue(我的第一个 real Vue项目)编写一个相当简单的搜索页面,并且设置了以下情况:
window.history.pushState
进入浏览器历史记录。 works created
或mounted
这样的名称。我知道这可能是故意的,因为此API的全部目的是避免页面重新加载,但是我想更新页面的状态,以便搜索框和结果与地址栏中的URL匹配。我找不到办法。 ❌我不使用Vue路由器,因为我认为我不需要它。这是一个单页网站,上面只有此搜索。
谢谢!
答案 0 :(得分:0)
由于上面的注释中的Slim,解决此问题的方法的确是监听popstate
事件。我最终在created
函数中使用了类似以下的代码:
var vm = this
window.addEventListener("popstate", function(event) {
if (event.state) {
vm.query = event.state.query
} else {
vm.query = ""
}
});
这当然假设我在调用pushState
时处于传递状态的查询,而我本来就是这样!