vue浏览器返回监听的具体步骤


Posted in Vue.js onFebruary 03, 2021

前言

分享页面时,希望点击浏览器回退按钮,回到项目首页,增加访问量。

需要监听浏览器的回退按钮,并阻止其默认事件。

具体步骤如下:

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");

总结

到此这篇关于vue浏览器返回监听的文章就介绍到这了,更多相关vue浏览器返回监听内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
在vue中使用inheritAttrs实现组件的扩展性介绍
Dec 07 Vue.js
Vue——解决报错 Computed property "****" was assigned to but it has no setter.
Dec 19 Vue.js
vue项目中openlayers绘制行政区划
Dec 24 Vue.js
vue动态设置路由权限的主要思路
Jan 13 Vue.js
如何封装Vue Element的table表格组件
Feb 06 Vue.js
如何理解Vue简单状态管理之store模式
May 15 Vue.js
vue-element-admin项目导入和导出的实现
May 21 Vue.js
vue基于Teleport实现Modal组件
May 31 Vue.js
Vue中插槽slot的使用方法与应用场景详析
Jun 08 Vue.js
Vue如何清空对象
Mar 03 Vue.js
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 Vue.js
vue中data里面的数据相互使用方式
Jun 05 Vue.js
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 #Vue.js
学习 Vue.js 遇到的那些坑
Feb 02 #Vue.js
Vue常用API、高级API的相关总结
Feb 02 #Vue.js
Vue项目打包部署到apache服务器的方法步骤
Feb 01 #Vue.js
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 #Vue.js
Vue 实现可视化拖拽页面编辑器
Feb 01 #Vue.js
vue-video-player 断点续播的实现
Feb 01 #Vue.js
You might like
PHP图片上传类带图片显示
2006/11/25 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
如何让PHP编码更加好看利于阅读
2019/05/12 PHP
Jquery UI震动效果实现原理及步骤
2013/02/04 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
2013/03/15 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
jquery制作居中遮罩层效果分享
2014/02/21 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
KnockoutJS 3.X API 第四章之click绑定
2016/10/10 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
Angular2之二级路由详解
2018/08/31 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
jQuery实现王者荣耀手风琴效果
2020/01/17 jQuery
微信小程序组件生命周期的踩坑记录
2021/03/03 Javascript
[01:45:05]VGJ.T vs Newbee Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
Python中的localtime()方法使用详解
2015/05/22 Python
使用Python求解最大公约数的实现方法
2015/08/20 Python
Python Nose框架编写测试用例方法
2017/10/26 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
2019/04/29 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
python中@contextmanager实例用法
2021/02/07 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
介绍一下OSI七层模型
2012/07/03 面试题
大二法学专业职业生涯规划范文
2014/02/12 职场文书
夜不归宿检讨书
2014/02/25 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
会计工作岗位职责
2015/02/03 职场文书
宿舍管理制度范本
2015/08/07 职场文书
python中的None与NULL用法说明
2021/05/25 Python