首页 > 其他 > 详细

Vue-开发笔记-阻止页面回退

时间:2019-05-13 17:50:49      阅读:229      评论:0      收藏:0      [点我收藏+]

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

Vue-开发笔记-阻止页面回退

原文:https://www.cnblogs.com/yangchin9/p/10857659.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!