# Vue2 computed 和 watch 的区别
# computed
计算属性
- 当计算属性依赖的值发生变化时,触发计算,并返回最新的值。
- 计算属性结果会被缓存,除非依赖的属性值发生变化才会重新计算。
- 不支持异步,当computed内有异步操作时无效,无法监听数据的变化
- computed 属性值会默认走缓存,计算属性是基于它们的响应式依赖进行缓存的,也就是基于data中声明过或者父组件传递的props中的数据通过计算得到的值
# watch
侦听属性
- 监听某一个值,当被监听的值发生变化时,执行对应的操作
- watch里面有一个属性为deep,含义是:是否深度监听某个对象的值, 该值默认为false。
- watch里面有一个属性为immediate,是否在初始化的时候监听生效,默认是false;
- watch支持异步;
- 监听的函数接收两个参数,第一个参数是最新的值;第二个参数是输入之前的值;
- 监听数据必须是data中声明过或者父组件传递过来的props中的数据,当数据变化时,触发其他操作,函数有两个参数,