(编辑:jimmy 日期: 2024/12/22 浏览:2)
前言
分享页面时,希望点击浏览器回退按钮,回到项目首页,增加访问量。
需要监听浏览器的回退按钮,并阻止其默认事件。
具体步骤如下:
1、挂载完成后,判断浏览器是否支持popstate
mounted(){ if (window.history && window.history.pushState) { history.pushState(null, null, document.URL); window.addEventListener('popstate', this.goBack, false); } },
2、页面销毁时,取消监听。否则其他vue路由页面也会被监听
destroyed(){ window.removeEventListener('popstate', this.goBack, false); },
3、将监听操作写在methods里面,removeEventListener取消监听内容必须跟开启监听保持一致,所以函数拿到methods里面写
methods:{ goBack(){ this.$router.replace({path: '/'}); //replace替换原路由,作用是避免回退死循环 } }
附:popstate用来做什么的?
popstate的怎么用?
HTML5的新API扩展了window.history,使历史记录点更加开放了。可以存储当前历史记录点pushState、替换当前历史记录点replaceState、监听历史记录点popstate。
pushState、replaceState两者用法差不多。
使用方法:
history.pushState(data,title,url); //其中第一个参数data是给state的值;第二个参数title为页面的标题,但当前所有浏览器都忽略这个参数,传个空字符串就好;第三个参数url是你想要去的链接;
replaceState用法类似,例如:history.replaceState("首页","",location.href+ "#news");
总结