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

最新文章

  1. Material Design Reveal effect(揭示效果) 你可能见过但是叫不出名字的小效果
  2. Security &#187; Authorization &#187; 介绍
  3. zhuan:ubuntu下安装Apache2+php+Mysql
  4. 如何:在 Winform 动态启动、控制台命令行?
  5. Unity3D 3D坦克大战
  6. 利用System V消息队列实现回射客户/服务器
  7. 一元多项式Polynomial的C语言实现
  8. linux中怎样设置DHCP
  9. OpenCV FileStorage 使用记录
  10. Ubuntu安装MongoDB和PHP扩展
  11. iOS开发之NSObject的多线程
  12. vim搭建笔记
  13. java学习笔记之System类
  14. Effective Java 第三版——18. 组合优于继承
  15. wcf类库及宿主
  16. SpringCloud的应用发布(四)vmvare+linux,防火墙和selinux
  17. 使用Kubernetes需要注意的一些问题(FAQ of k8s)
  18. Mybatis插入数据返回主键ID
  19. java反序列化漏洞实战
  20. redis数据库安装 redis持久化及主从复制

热门文章

  1. django 自定义url转换器
  2. crowdfunding项目01——感人的错误
  3. blur()低通滤波
  4. 初识eclipse-java
  5. [ASP.NET]Web网站与Web应用程序区别
  6. C++-POJ2155-Matrix[数据结构][树状数组]
  7. 微信或QQ屏蔽了我的域名,已经被微信屏蔽的域名如何在微信打开,如何进行微信域名防封?
  8. 解决win10状态栏的搜索框无法搜索本地应用或无反应
  9. CGMH:Constrained Sentence Generation by Metropolis-Hastings Sampling解读
  10. Java - 闭包