watch 监听对象内部字段变化不触发,deep 该怎么用

watch 默认只比较引用,同一个对象只改内部字段不会触发回调。

监听 ref 包裹的对象要显式传 deep: true。

监听 reactive 对象本身天然就是深度监听,不用加 deep,但一旦用 getter 写法就退回浅比较。

只为某个字段变化而触发时,写 getter 精确取值最省性能,别拿整个对象做深度监听,大表单上那是实打实的性能损耗。

watch(() => props.form, () => {}, { deep: true })
watch(obj, () => {})                 // reactive 对象,天然深度
watch(() => obj.count, (n, o) => {}) // 只关心单个字段,开销最小
watch(src, cb, { immediate: true })  // 首次也执行一次
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容