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