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+iview实现文件上传
Nov 17 Vue.js
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
Dec 04 Vue.js
基于vue+echarts数据可视化大屏展示的实现
Dec 25 Vue.js
如何使用RoughViz可视化Vue.js中的草绘图表
Jan 30 Vue.js
详解Vue3.0 + TypeScript + Vite初体验
Feb 22 Vue.js
vue前端和Django后端如何查询一定时间段内的数据
Feb 28 Vue.js
vue3.0中使用element的完整步骤
Mar 04 Vue.js
vue实现同时设置多个倒计时
May 20 Vue.js
Vue h函数的使用详解
Feb 18 Vue.js
vue3引入highlight.js进行代码高亮的方法实例
Apr 08 Vue.js
解决vue中provide inject的响应式监听
Apr 19 Vue.js
vue使用watch监听属性变化
Apr 30 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
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
使ecshop模板中可引用常量的实现方法
2011/06/02 PHP
coreseek 搜索英文的问题详解
2013/06/08 PHP
基于php iconv函数的使用详解
2013/06/09 PHP
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
PHP多文件上传类实例
2015/03/07 PHP
php生成0~1随机小数的方法(必看)
2017/04/05 PHP
IE FF OPERA都可用的弹出层实现代码
2009/09/29 Javascript
jquery eval解析JSON中的注意点介绍
2013/08/23 Javascript
推荐10个2014年最佳的jQuery视频插件
2014/11/12 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
2016/05/31 Javascript
Bootstrap模态框禁用空白处点击关闭
2016/10/20 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
微信小程序绘制图片发送朋友圈
2019/07/25 Javascript
es6函数之尾调用优化实例分析
2020/04/25 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
[03:07]【DOTA2亚洲邀请赛】我们,梦开始的地方
2017/03/07 DOTA
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
linux下安装easy_install的方法
2013/02/10 Python
Python性能优化技巧
2015/03/09 Python
python/sympy求解矩阵方程的方法
2018/11/08 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
戴森美国官网:Dyson美国
2016/09/11 全球购物
英国领先品牌手动工具和电动工具供应商:Tooled Up
2018/11/24 全球购物
澳大利亚床上用品、浴巾和家居用品购物网站:Bambury
2020/04/16 全球购物
岗位廉洁从政承诺书
2014/03/27 职场文书
计算机专业应届生求职信
2014/04/06 职场文书
七一表彰大会简报
2015/07/20 职场文书
python基础之停用词过滤详解
2021/04/21 Python