VUX的swiper组件的一个坑

本文探讨Vue中watch监听的实现原理,包括基本监听与深度监听的区别。基本监听仅在对象引用变化时触发,而深度监听则遍历对象所有属性,对任何修改都会作出响应。同时,通过示例说明如何优化深度监听,使用字符串路径实现特定属性的监听。
摘要由CSDN通过智能技术生成

这个组件是内部没有深度的 watch监听, 他不能动态的加载数据, 比如你不能往数组push。但是你可以直接修改栈内存地址。就是一次性把值赋给list。
***

监听实现原理

默认情况下 handler 只监听obj这个属性它的引用的变化,我们只有给obj赋值的时候它才会监听到,比如我们在 mounted事件钩子函数中对obj进行重新赋值

深度监听实现原理:

deep的意思就是深入观察,监听器会一层层的往下遍历,给对象的所有属性都加上这个监听器,但是这样性能开销就会非常大了,任何修改obj里面任何一个属性都会触发这个监听器里的 handler。优化,我们可以是使用字符串形式监听。

watch: {
  'obj.a': {
    handler(newName, oldName) {
      console.log('obj.a changed');
    },
    immediate: true,
    // deep: true
  }
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值