Vue中的 computed(计算属性)与 watch(监视属性)

Vue中的 computed(计算属性)与 watch(监视属性)

  • 计算属性写法(非简写形式)

    computed: {
        fullName: {
            get(){
                return 'zml'
            },
            set(value){
                ...
            }    
        }
    }
    

    那什么时候 get()会被调用呢?

    首先我们得知道,computed 是有缓存的。假如你模板中有多个地方用到了fullName,那么它只会读第一次,即此时 get()方法只会被调用一次,后面读的都是缓存

    1. 初次读取时
    2. 所依赖的数据发生变化时
  • 监视属性写法(非常规)

    vm.$watch('name',{
    	...
        handler(newValue, oldValue){
            ...
        }
    })
    

这两属性之间的区别

  1. watch 里面可以有异步任务
  2. computed 中也可以写异步,但是它是要靠 return 来返回值的,根据事件队列来讲,你异步里面写的东西没啥效果(但最终会被执行),因为 return 早就执行了

总结:能用计算属性就用计算属性,因为计算属性相对来讲实现要简单一些;计算属性实现不了了,我们再考虑监视属性

posted @ 2022-07-09 15:35  朱在春  阅读(67)  评论(0编辑  收藏  举报