Vue-阻止页面回退
2024-09-06 00:24:20
1.原生js方法
<script language="javascript">
//防止页面后退 使用在vue时 挂载到mounted中
history.pushState(null, null, document.URL);
window.addEventListener('popstate', function () {
history.pushState(null, null, document.URL);
});
</script>
2.vue中结合vuex方法
1.在路由配置中给这个路由添加meta信息,比如:
{
path: '/index',
component: Index,
meta: {allowBack: false}
}
2.在全局的router.beforeEach 函数里面获取allowBack的状态,同时更新vuex的allowBack的值,
let allowBack = true // 给个默认值true
if (to.meta.allowBack !== undefined) {
allowBack = to.meta.allowBack
}
if (!allowBack) {
history.pushState(null, null, location.href)
}
store.dispatch('updateAppSetting', {
allowBack: allowBack
})
**这段代码得写在next()的后面,因为写在next()前面location.href并不是to的地址,这点跟vue1.0有点不同。
location.href 获取的仍不是to的地址,所以得根据to的信息来拼起来
3.接下来就是最核心的了,在app.vue的mounted里面写onpopstate事件:
window.onpopstate = () => {
if (!this.allowBack) { // 这个allowBack 是存在vuex里面的变量
history.go(1)
}
}
文章出处
---------------------
作者:LuviaWu
来源:CSDN
最新文章
- Material Design Reveal effect(揭示效果) 你可能见过但是叫不出名字的小效果
- Security &#187; Authorization &#187; 介绍
- zhuan:ubuntu下安装Apache2+php+Mysql
- 如何:在 Winform 动态启动、控制台命令行?
- Unity3D 3D坦克大战
- 利用System V消息队列实现回射客户/服务器
- 一元多项式Polynomial的C语言实现
- linux中怎样设置DHCP
- OpenCV FileStorage 使用记录
- Ubuntu安装MongoDB和PHP扩展
- iOS开发之NSObject的多线程
- vim搭建笔记
- java学习笔记之System类
- Effective Java 第三版——18. 组合优于继承
- wcf类库及宿主
- SpringCloud的应用发布(四)vmvare+linux,防火墙和selinux
- 使用Kubernetes需要注意的一些问题(FAQ of k8s)
- Mybatis插入数据返回主键ID
- java反序列化漏洞实战
- redis数据库安装 redis持久化及主从复制
热门文章
- django 自定义url转换器
- crowdfunding项目01——感人的错误
- blur()低通滤波
- 初识eclipse-java
- [ASP.NET]Web网站与Web应用程序区别
- C++-POJ2155-Matrix[数据结构][树状数组]
- 微信或QQ屏蔽了我的域名,已经被微信屏蔽的域名如何在微信打开,如何进行微信域名防封?
- 解决win10状态栏的搜索框无法搜索本地应用或无反应
- CGMH:Constrained Sentence Generation by Metropolis-Hastings Sampling解读
- Java - 闭包