如何在Vue项目中运用popstate事件优化页面回退功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计752个文字,预计阅读时间需要4分钟。
需求背景:项目需要一个返回确认功能,避免用户误触返回键退出当前页面。
原理:利用`history`和浏览器刷新`popstate`状态实现。
实现:
1.在`mounted`生命周期阶段,判断并添加`popstate`事件监听;
2.`popstate`事件触发时,弹出确认对话框询问用户是否真的要退出;
3.如果用户确认退出,则正常返回上一页面;如果取消,则不做处理,继续留在当前页面。
需求背景:项目中需要做一个返回确认,避免用户误触返回键而退出当前页面。
原理:利用history和浏览器刷新popstate状态
实现:
1、在mounted() 阶段判断并添加popstate事件监听,History.pushState()(参数:一个状态对象,一个标题(现在被忽略了),以及一个可选的URL地址), 注意:IOS版的微信,是会立即触发popstate事件,所以需要pageshow做下处理,(当一条会话历史记录被执行的时候将会触发页面显示(pageshow)事件。(这包括了后退/前进按钮操作,同时也会在onload 事件触发后初始化页面时触发))
2、在methods里定义监听操作函数
3、页面销毁时,取消监听。
本文共计752个文字,预计阅读时间需要4分钟。
需求背景:项目需要一个返回确认功能,避免用户误触返回键退出当前页面。
原理:利用`history`和浏览器刷新`popstate`状态实现。
实现:
1.在`mounted`生命周期阶段,判断并添加`popstate`事件监听;
2.`popstate`事件触发时,弹出确认对话框询问用户是否真的要退出;
3.如果用户确认退出,则正常返回上一页面;如果取消,则不做处理,继续留在当前页面。
需求背景:项目中需要做一个返回确认,避免用户误触返回键而退出当前页面。
原理:利用history和浏览器刷新popstate状态
实现:
1、在mounted() 阶段判断并添加popstate事件监听,History.pushState()(参数:一个状态对象,一个标题(现在被忽略了),以及一个可选的URL地址), 注意:IOS版的微信,是会立即触发popstate事件,所以需要pageshow做下处理,(当一条会话历史记录被执行的时候将会触发页面显示(pageshow)事件。(这包括了后退/前进按钮操作,同时也会在onload 事件触发后初始化页面时触发))
2、在methods里定义监听操作函数
3、页面销毁时,取消监听。

