ITPub博客

首页 > 应用开发 > IT综合 > Vue中计算属性和侦听器

Vue中计算属性和侦听器

原创 IT综合 作者:山有木xi 时间:2020-03-16 17:29:03 0 删除 编辑

在Vue中通常我们会在模板绑定表达式,模板是用来描述视图结构的。如果模板中的表达式存在过多的逻辑性语句,那么整个模板就会变得特别的臃肿,可读性和维护性将会降低,因此为了简化逻辑,我们会使用计算属性

基本用法:

computed:{
A:function(){
return B+C
}
}

如果学过面向对象语言,应该知道面向对象的标准之一封装,需要getter也需要setter,而上面的写法,实际上只写了getter而没有写setter

那么我们就可以换种写法

computed:{
A:{
get:function(){
return B+C
}
set:function(newVal){
var names=newVal.splir(' ')
this.B=names[0]
this.C=names[1]
}
}
}

这样写就明了很多了

这个时候,可能会奇怪,似乎计算属性能做的用方法来也可以做

也就是

methods: {
  A: function () {
    return B+C
  }
}

实际上,计算属性是基于他们的响应式依赖进行缓存的,而方法不存在缓存

而计算属性的缓存也有它的坏处,当重复调用时,就会发生一些多余的步骤,导致大量不必要的运算

这时候就需要

cache:false

关闭缓存

再来看他的缓存方式,计算属性是具有依赖性的,依赖data中的数据,如果数据改变,相应的就会改变,这就要说到另外一个东西:侦听器
什么是侦听器呢?侦听器用来侦听数据的变化,如果数据发生变化就会触发绑定的方法
侦听器又有自己的应用场景: 数据变化执行时异步或开销比较大的操作
基本使用:

watch:{
firstN:function(val){
this.A=val+this.C
}
}


侦听器,相比于计算属性来说,是很容易重复的,所以Vue也建议,通常更好的做法是使用计算属性而不是watch

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69917874/viewspace-2680638/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Vue中过滤器
请登录后发表评论 登录
全部评论
Oracle OCA(Java),IBM高级工程师认证,中国软件行业人才(高级c语言),高级Android工程师,对数据库并发与性能调优也有一定了解

注册时间:2019-04-25

  • 博文量
    147
  • 访问量
    390781