计算属性(computed)和侦听器(watch)的区别

计算属性

1.把对象当变量属性使用,必须通过return返回结果

2..支持缓存,在页面初始化的时候缓存一次数据,在多个地方使用该属性也只调用一次,只有在影响该属性发送变化的时候才会重新调用一次

3.一个属性由多个属性计算得到,是多对一或者一对一关系

4.默认深度监听,默认使用get方法只读,还有set方法可以修改数据

5.不支持异步执行(定时器)

侦听器

1.默认不会在初始化自动调用,不深度监听,不会缓存,当监听的属性发生改变就调用一次

2.可以监听多个属性使用数组包起来或者监听整个对象(深度监听)

3.支持异步(定时器使用箭头函数,保证this的指向)

4.监听一个属性可以操作多个属性一对多关系,操作旧的的和新的数据

5.想在初始化就执行一次使用deep:true属性

6.想深度监听就使用immediate:true监听多层数据(整个对象)

watch:{
    //简写
    "sun"(newValue,odlValue){}
    //对象
    "sun":{
        immediate:true,//初始化立即执行一次
        deep:true,//深度监听,监听整个对象
        handler(newValue,oldValue){}
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_70563937/article/details/126982353
今日推荐