监视属性watch:
- 当被监视的属性发生变化时,回调函数自动调用,进行相关操作
- 监视的属性必须存在,才能进行监视,可以监视计算属性
- 监视的两种写法:
- new Vue时传入watch配置
- 通过vm.$watch监视

handler调用时机:监视的属性发生变化时调用
handler(newValue,oldValue):传入两个参数,修改后的值和原来的值
watch监视的属性还有其他配置项,比如:immediate:true,初始化时handler()函数立即执行一次
深度监视:
- Vue中的watch默认不监视对象内部值的改变(一层)
- 配置deep:true可以监视对象内部值的改变(多层)
- vue自身可以监测对象内部值的改变,但是vue中的watch默认不可以
- 使用watch时根据数据的具体结构,决定是否采用深度监视

当监视属性中只用到handler函数而没有其他配置项时,可以简写,有两种简写方式,如下:

computed和watch之间的区别:
- computed能完成的功能,watch都可以完成
- watch能完成的功能,computed不一定能完成,例如:watch可以进行异步操作
两个重要的小原则:
- 被vue所管理的函数,最好写成普通函数,这样this的指向才是vm或组件实例对象
- 不被vue所管理的函数(定时器的回调函数,ajax的回调函数,promise的回调函数),最好写成箭头函数,这样this的指向才是vm或组件实例对象。
