vue监听浏览器返回

Posted chao202426

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue监听浏览器返回相关的知识,希望对你有一定的参考价值。

代码

监听返回

mounted () 
    if (window.history && window.history.pushState) 
        // 向历史记录中插入了当前页
        history.pushState(null, null, document.URL);
        window.addEventListener(‘popstate‘, this.goBack, false);
    
,
destroyed () 
    window.removeEventListener(‘popstate‘, this.goBack, false);
,
methods: 
    goBack () 
        // console.log("点击了浏览器的返回按钮");
        sessionStorage.clear();
        window.history.back();
    ,
 

因为这个页面有跳转其他页面的路由,所以在组件的路由钩子里也清了缓存

beforeRouteLeave (to, from , next) 
    sessionStorage.clear();
    next()
,

禁用返回

mounted () 
    if (window.history && window.history.pushState) 
        // 向历史记录中插入了当前页
        history.pushState(null, null, document.URL);
        window.addEventListener(‘popstate‘, this.goBack, false);
    
,
destroyed () 
    window.removeEventListener(‘popstate‘, this.goBack, false);
,
methods: 
    goBack () 
        // console.log("点击了浏览器的返回按钮");
        history.pushState(null, null, document.URL);
    ,
 

history对象

window可以省略,直接使用history
1、window.history.back() : 后退
2、window.history.forward() : 前进
3、window.history.go(num) : 前进或后退指定数量历史记录

window.history.go(1)
前进
window.history.go(-1)
后退
window.history.go(0)
刷新

4、window.history.pushState(state, title, url)
存储当前历史记录点

state:一个对象,可以添加相关信息
title:历史记录的标题
url:创建的历史记录的链接

5、window.history.replaceState(state, title, url)
替换当前历史记录点

6、popstate
history 实体改变时触发的事件,监听历史记录点

7、window.history.state
获取 history 实体中的 state 对象

history.go(0) 和 location.reload() 的区别
一、location.reload()
默认参数为false,即location.reload(false)

1、location.reload(false):
会用 HTTP 头 If-Modified-Since 来检测服务器上的文档是否已改变
如果文档已改变,从服务端再次下载该文档
如果文档未改变,从缓存中装载文档
作用等同于点击浏览器的刷新按钮 (F5)

2、location.reload(true):
绕过缓存,从服务器上重新下载该文档
作用等同于点击浏览器的刷新按钮,同时按住Shift (Shift+F5)

二、history.go(0)
直接读取缓存数据,不会从服务器端获取数据

history.go(-1) 和 history.back() 的区别
一、history.go(-1)
后退并刷新,原页面表单中的内容会丢失
二、history.back()
后退,原页面表单中的内容会保留

 

 


原文:https://blog.csdn.net/weixin_33953384/article/details/87518720 

以上是关于vue监听浏览器返回的主要内容,如果未能解决你的问题,请参考以下文章

vue JS实现监听浏览器返回按键事件

vue项目监听安卓手机物理返回键

vue 监听浏览器关闭事件

记录:uni-app 监听浏览器返回事件,onBackPress生命周期失效问题

vue项目中利用popstate处理页面返回操作

vue监听页面宽度高度