-
computed是计算属性,watch是监听
-
computed是用来计算一个值的,这个值:
- 1.调用时不需要加括号。可以当属性一样用
- 2.根据依赖会自动缓存,如果依赖不变,computed的值就不会重新计算
-
watch是用来监听的,当监听的数据变化时,那么就执行一个函数,里面有两个选项:
- immediate,表示是否在第一次渲染的时候执行这个函数
- deep,用来控制监听对象时是否要看这个对象里面的属性变化(否则的话,就算obj里面的a的值变化,由于obj地址没有变,watch默认obj不变)
-
watch允许我们:
-
1.执行异步操作 (访问一个 API),
-
2.限制我们执行该操作的频率,
-
3.并在我们得到最终结果前,设置中间状态,
这些computed无法做到
-
-
总结:
如果一个数据依赖于其他数据, 那么把这个数据设计为 computed 的
如果你需要在某个数据变化是做一些事情, 使用 watch 来观察这个数据变化