vue的watch和computed

vue的watch和computed区别在哪?各有什么应用场景?有研究过的大佬给说说吗?

vuejs
82 views
Comments
登录后评论
Sign In
·

computed:计算属性、只有当依赖的数据变化时才会计算, 当数据没有变化时, 它会读取缓存数据,类似 react 函数组件的 useMemo。比如 data 里面有一个数值数组,你要过滤一些元素,找出新的数组(比如找出里面所有偶数),就可以用 computed。

watch:类似观察者模式,在数据变化时执行回调函数,类似 react 里面的 useEffect。有时我们需要监控特定数据变化的时候执行相关操作,比如有个状态 loading,变为 false,执行一些操作,就要监控 loading 这个值。

vue 中 computed 和 watch 使用的时候要注意,避免写出死循环,比如:watch 的值是 computed 的,然后 watch 的 callback 还去修改对于的 data,就会挂掉