Vue watch watchEffect 的区别

4 min read

一、

  • watch 手动(定向)依赖
  • watchEffect 自动(定额)依赖

二、

  • watch 默认不会立即执行(可配置)
  • watchEffect 必须立即执行一次(依赖收集);注意: 依赖太多各种坑

三、

  • watch 可以代替 watchEffect
  • watchEffect 不能替代 watch

对比 mobox:

  • watch 与 reaction 行为一致
  • watchEffect 与 autorun 行为一致

对比 react:

  • watch 可以用 useEffect 模拟
  • watchEffect 没法模拟~

对比 rxjs:

  • watch:“人家连个操作符都没有,你这不是欺负人嘛”
  • watchEffect:“watch 说的对”~

总结:

  • 如果你对他俩模糊,请记住永远使用 watch !!!
  • watchEffect 适用于一些 “小规模副作用” 场景