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项目利用axios请求接口下载excel
Nov 17 Vue.js
详解Vue的mixin策略
Nov 19 Vue.js
如何实现vue的tree组件
Dec 03 Vue.js
Vue如何跨组件传递Slot的实现
Dec 14 Vue.js
Vue+penlayers实现多边形绘制及展示
Dec 24 Vue.js
梳理一下vue中的生命周期
Dec 30 Vue.js
jenkins自动构建发布vue项目的方法步骤
Jan 04 Vue.js
vue实现验证用户名是否可用
Jan 20 Vue.js
vue浏览器返回监听的具体步骤
Feb 03 Vue.js
vue中axios封装使用的完整教程
Mar 03 Vue.js
vue中 this.$set的使用详解
Nov 17 Vue.js
Vue自定义铃声提示音组件的实现
Jan 22 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
Email+URL的判断和自动转换函数
2006/10/09 PHP
解析用PHP实现var_export的详细介绍
2013/06/20 PHP
PDO的安全处理与事物处理方法
2016/10/31 PHP
用jquery仿做发微博功能示例
2014/04/18 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
vue-hook-form使用详解
2017/04/07 Javascript
JS字符串按逗号和回车分隔的方法
2017/04/25 Javascript
cordova入门基础教程及使用中遇到的一些问题总结
2017/11/14 Javascript
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
详解webpack之scss和postcss-loader的配置
2018/01/09 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
2018/03/28 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
vue监听对象及对象属性问题
2018/08/20 Javascript
express中static中间件的具体使用方法
2019/10/17 Javascript
微信小程序如何实现点击图片放大功能
2020/01/21 Javascript
[03:48]显微镜下的DOTA2第四期——TP动作
2014/06/20 DOTA
Python实现线程池代码分享
2015/06/21 Python
Python中的fileinput模块的简单实用示例
2015/07/09 Python
Python生成随机密码的方法
2017/06/16 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
2020/01/10 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
CSS中越界问题的经典解决方案【推荐】
2016/04/19 HTML / CSS
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
HTML5 canvas 瀑布流文字效果的示例代码
2018/01/31 HTML / CSS
开业庆典邀请函
2014/01/08 职场文书
简历中的自我评价怎么写
2014/01/29 职场文书
预备党员综合考察材料
2014/05/31 职场文书
化工实习心得体会
2014/09/09 职场文书
一文搞懂MySQL索引页结构
2022/02/28 MySQL
vue实力踩坑之push当前页无效
2022/04/10 Vue.js