el-form离开页面前判断数据是否改动并提示

实现原理:
1.判断页面是否有数据改动, 可以在watch方法中深度监听form这个对象是否有改动.
(这里要注意, isDataChangeCount之所以用Number来判断变化次数, 是因为页面加载完时, form会出现一次数据变化, 因此只用true和false来判断是不准确的)
2.在beforeRouteLeave方法里进行对isDataChangeCount的判断,进而实现对应的提示和操作

watch监听数据的改变次数

watch:{
   form: {
     handler (n, o) {
       this.isDataChangeCount++
     },
     deep: true
   }
}

离开前判断数据是否有更改

  beforeRouteLeave (to, from, next) {
    if (this.isDataChangeCount > 1) {
      this.$confirm('有数据尚未保存,是否离开页面?', '提示', {
        confirmButtonText: '保存数据',
        cancelButtonText: '仍要离开',
        type: 'warning',
        center: true
      }).then(() => {
        // 进行数据保存的操作
      }).catch(() => {
        next()
      })
    } else {
      next() // 离开页面
    }
  },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值