侦听器

功能

每次响应式属性变化时,触发一个函数

特性

  • watch默认浅层的,深层需要增加deep: true

深层监听开销很大,需要遍历树

  • 即时回调的侦听(创建时回调一次)
    用对象来声明
  • handler方法中会被调用
  • 设置immediate: true 属性
watch: {
    handler() {
        //创建时会被调用
    }
    //强制立即执行回调
    immediate: true
}

初次回调发生在created钩子之前,此时处理了data、computed和methods。

  • 回调触发时机
    若改变引起Vue组件更新,侦听器中回调的是更新前的状态。
    如果想访问更新后的DOM,需要指明属性:
    flush: 'post'

  • 停止
    通常会在宿主组件卸载时,自动停止,多数情况下无需关心
    在组件卸载前停止,需要调用停止函数,创建时声明停止函数

const unwatch = watch()
unwatch()
posted @ 2023-01-29 16:38  一个斯帕纳  阅读(77)  评论(0)    收藏  举报