Watch详解
作为Vue实例的一个属性,watch主要用来监听数据的变化。在实例化时调用$watch(),遍历watch对象的每一个属性,对简单数据类型进行监听,例如字符串、布尔类型和数字等。需要注意的是,watch不会在第一次进入页面时进行监听,如果需要监听首次变化,应该将immediate值设置为true。

复杂数据类型监听
对于复杂数据类型的监听,我们需要开启深度监听,将deep属性设置为true,需要注意的是,数组不需要进行深度监听。对象的监听有两种方式:第一种是监听整个对象;第二种是监听对象的某个属性,区别在于前者每个属性值发生变化时都会执行handler,handler执行后的新旧值一样,后者新旧值则不一样。
区别于计算属性(computed)的缓存效果,watch没有缓存。Computed能够进行重新计算,当数据发生改变的时候,然而watch不支持缓存。此外,computed可以自定义名称,watch监听属性名称只能和data里面名称一致。而且,computed不支持异步,不能监听数据变化,而watch则支持异步。
根据实际需求的不同,Computed适用于复杂运算,监听属性适合消耗性功能,比如ajax。如果一个属性由其他属性计算而来,我们一般使用computed,当一个属性发生变化时需要执行相应操作,就应该使用watch监听。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6415.html
