关于页面数据未保存改变路由(beforeunload,beforeRouteLeave)

  一下内容为笔者个人理解,如有出入还请大佬指出不胜感激

  页面有数据未保存,用户离开页面分为两种

    1 . 直接关闭浏览器标签 或者点击浏览器后退按钮 离开当前页面

    2. 在页面内改变路由,或则刷新页面(不包含新标签页打开页面‘target=_blank’)网址:yii666.com

  先说第1种情况 通过关闭页签和后退按钮

    文章地址https://www.yii666.com/article/758349.html

   1 通过window的api  beforeunload 
      
window.addEventListener('beforeunload', (event) => {
// Cancel the event as stated by the standard.
event.preventDefault();
// Chrome requires returnValue to be set.
event.returnValue = '';
});

    注意 event.preventDefault();谷歌不兼容该方法(详细兼容见下文兼容详图)

  笔者实现如下

    

 addBeforeunloadHandler(){
window.addEventListener('beforeunload', this.beforeunloadHandler, false);
},

 注意这里是callback 该事件对象可以设置提示语(目前官方文档标明不推荐使用兼容性很差具体兼容见下文兼容详图)

 关于页面数据未保存改变路由(beforeunload,beforeRouteLeave)

   通过watch监听是否有数据未保存来判断 注册该方法还是清除该方法

    清除注册的监听事件网址:yii666.com<

deleBeforeunloadHandler(){
window.removeEventListener('beforeunload', this.beforeunloadHandler, false);
}

 自定义提示语的callback,注意兼容问题

    关于页面数据未保存改变路由(beforeunload,beforeRouteLeave)

    事件监听:

  关于页面数据未保存改变路由(beforeunload,beforeRouteLeave)文章来源地址https://www.yii666.com/article/758349.html

  简单的一段代码可以避免用户误操作丢失数据的蛋疼问题(通常丢失数据的误操作会问候无辜的码农们emmmm)

    兼容详图  地址 https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event

    关于页面数据未保存改变路由(beforeunload,beforeRouteLeave)

  

  2 用户在页面中点击链接跳转页面和刷新页面 vue的 beforeRouteLeave 路由导航 
beforeRouteLeave(to,form,next){
let that=this
if(that.isPreservation){
    that.$confirm('有未保存数据,继续该操作数据将丢失。是否确认?', '提示', {
    confirmButtonText: '确定',
    cancelButtonText: '取消',
    type: 'warning'
    }).then(()=>{
    next()
    })
  }else{
     next()
}

 自己的代码段(生命周期函数别大意写到其他生命周期函数内部了)  
 关于 to form next就不用介绍了 一般开发应该都知道是干嘛的。next(false) 取消导航文章来源地址:https://www.yii666.com/article/758349.html

  该方法为笔者自己项目使用的ui框架,就是弹窗而已,根据自己情况使用

  关于页面数据未保存改变路由(beforeunload,beforeRouteLeave)

  两者一起使用,让用户未保存数据时无路可走。

      

版权声明:本文内容来源于网络,版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。文本页已经标记具体来源原文地址,请点击原文查看来源网址,站内文章以及资源内容站长不承诺其正确性,如侵犯了您的权益,请联系站长如有侵权请联系站长,将立刻删除

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信图片_20190322181744_03.jpg

微信扫一扫打赏

请作者喝杯咖啡吧~

支付宝扫一扫领取红包,优惠每天领

二维码1

zhifubaohongbao.png

二维码2

zhifubaohongbao2.png