computed和watch的区别

229 阅读1分钟
  • computed是计算属性,watch是监听

computed是用来计算一个值的,

这个值:

  1. 调用时不用加括号。可以当属性一样用
  2. 根据依赖会自动缓存,如果依赖不变,computed的值不会重新计算

wacth是用来监听的,当监听的数据发生变化时,那么就执行一个函数。函数里面有两个选项:

  1. immediate, 表示是否在第一次渲染的时候执行这个函数
  2. deep,当用来控制监听对象时,要看这个对象里面的属性是否变化(否则,就算obj里面a的变化,由于obj地址没有变,watch默认obj也不变)
  • watch允许我们:

1.执行异步操作(访问一个API)
2.限制我们执行改操作的频率
3.在我们得到最终结果前,设置中间状态

这些都是computed无法做到的

总结

  • 如果一个数据依赖于其他数据,那么这个数据设计为computed
  • 如果你需要在某个数据变化时做一些事情,使用watch来观察这个数据的变化