侦听属性watch 、watch与computed的区别
2021-07-29 本文已影响0人
卑微小李学前端
监视属性watch:
1、当被监视的属性发生变化时,回调函数自动调用,进行相关操作
2、监视的属性必须存在,才能进行监视!!
3、监视的两种写法:
(1)、new Vue时传入watch配置
(2)、通过vm.$watch监视
深度监视:
(1)、vue中的watch默认不监测对象内部值的改变(一层)。
(2)、配置deep:true可以监测对象内部值的改变(多层)。
备注:
(1)、vue自身可以监测对象内部值的改变,但vue提供的watch默认不可以!
(2)、使用watch时根据数据的具体结构,决定是否采用深度监视。
computed和watch之间的区别
1、computed能完成的功能,wathc都能完成
2、watch能完成的功能,computed不一定能完成,例如:watch可以进行异步操作
两个重要额小原则:
1、所被vue管理的函数,最好写成普通函数,这样this的指向才是vm或组件的实例对象
2、所有不被vue管理的函数(定时器的回调问题,ajax的回调函数),最好写成箭头函数
这样thisl的指向才是 vm 或 组件实例对象