vue中watch监听对象、锁的概念

data() {
    return {
        name: 'zs',
        info: {
            hobby: '睡觉'
        }
    }
} 
watch: {
    name(val, oldValue) {
        console.log('info', val, oldValue)
    },
    // 监听对象写成对象形式,里面写deep
    info: {
      handler(val, oldValue) {
          // 这里因为监听是对象、对象在内存中会同步改变、所以拿不到老值、打印出两个新值
          console.log('info', val, oldValue)
      },
      //立刻执行handler
      immediate: true,
      // 深度监听、这里不写deep就和监听字符串一样、会导致没效果
      deep: true,
    },
  },

锁的概念

1.有的时候 给按钮做限制解决快速点击多出触发接口、用css的disabled能禁用但是快速点击还是出来多次请求
2.这里就可以用 防抖、v-loding、锁来做限制
3.锁的概念和v-loading差不多、用来防止多次快速点击按钮出现多次请求、区别防抖、锁不用写setrimeout
data() {
    isLocked: false
}
changeBtn() {
    if (this.isLocked) { return }
    this.isLocked = true
    this.$http.get('url', {...}).then((res) => {
       this.isLocked = false
       console.log(res)
    }).finally(() => {
       // 防止服务器崩了导致请求失败 isLocked 一直是true状态出现bug
       this.isLocked = false
    })
             
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只管挖坑不管埋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值