当前位置: 首页 > Web前端 > vue.js

vue实现了监控浏览器自带的后退按钮

时间:2023-04-01 12:39:47 vue.js

在项目开发过程中,测试发现类似于从A页面进入B页面(B页面右上角有个按钮可以触发子组件弹框的打开)。当你点击按钮打开B页面的子组件,然后点击浏览器的返回按钮,路由会跳转到A页面,再次从A页面点击进入B页面,B页面的子组件会被显示。解决方法如下:在子组件中,监听浏览器的内置浏览器。//挂载完成后,判断浏览器是否支持popstatemounted(){if(window.history&&window.history.pushState){//将当前页面的新url添加到历史记录中history.pushState(null,空,文件.URL);//给popstate绑定一个监听页面刷新的方法window.addEventListener('popstate',this.backChange,false);}},//当页面销毁时,取消监听。否则其他vue路由页面也会被监听destroyed(){window.removeListener('popstate',this.backChange,false)},methods:{//将监听操作写在methods中,removeEventListener取消监听内容必须跟通过启用监控保持一致backChange(){this.$emit('change',false)}}