这篇文章运用简单易懂的例子给大家介绍vue利用popstate实现处理页面返回的方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>需求背景:强>项目中需要做一个返回确认,避免用户误触返回键而退出当前页面。
<强>原理:>强利用历史和浏览器刷新popstate状态
<强>实现:强>
1,在安装()阶段判断并添加popstate事件监听,History.pushState()(参数:一个状态对象,一个标题(现在被忽略了),以及一个可选的URL地址),注意:IOS版的微信,是会立即触发popstate事件,所以需要pageshow做下处理,(当一条会话历史记录被执行的时候将会触发页面显示(pageshow)事件。(这包括了后退/前进按钮操作,同时也会在onload事件触发后初始化页面时触发))
2,在方法里定义监听操作函数
3页面销毁时,取消监听。(注意:一定要取消监听,否则其他vue路由页面也会被监听)
<强> vue项目监测浏览器返回按钮强>
在WebApp或浏览器中,会有点击返回,后退,上一页等按钮实现自己的关闭页面,调整到指定页面,确认离开页面或执行一些其它操作的需求。可以使用popstate事件进行监听返回,后退,上一页操作。
<强>简单介绍历史中的操作强>
window.history.back(),后退
window.history.forward(),前进
window.history.go (num),前进或后退指定数量历史记录
window.history.pushState(状态、标题、URL),在页面中穿件一个历史实体。直接添加到历史记录中。参数:状态:储存一个对象,可以添加相关信息,可以使用历史。州读取其中的内容.title:历史记录的标题,url:创建的历史记录原则,进行历史记录操作时会跳转到该链接。
window.history.replaceState(),修改当前的历史实体。
popstate事件,历史实体改变时触发事件
window.history。状态,会获得历史实体中的状态对象。
<强>使用方法强>
取消默认的返回操作
添加一条历史实体作为替代原来的历史实体
安装(){ 如果(window.history&, window.history.pushState) { history.pushState(空,空,document.URL) window.addEventListener (& # 39; popstate& # 39;,这一点。返回false); } }, 摧毁了(){ window.removeEventListener (& # 39; popstate& # 39;, this.goBack,假); }, 方法:{ 返回(){ 美元。router.replace({路径:& # 39;/& # 39;});//替换替换原路由,作用是避免回退死循环 } }
关于vue利用popstate实现处理页面返回的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。