美文网首页
四、Vue计算属性

四、Vue计算属性

作者: Marshall_Wang | 来源:发表于2018-10-06 20:56 被阅读0次

1、什么事计算属性

在模板中双向绑定一些数据或表达式。但是表达式如果过长,或逻辑更为复杂时,就会变得雕肿甚至难以阅读和维护,如:

{{ text.split ( ’,’ ) .reverse () . join (’,’)}},

可改写为:

var app =new Vue({

el :’#app ’,

data :也

    text :’ 123,456 ’

},

computed : {

reversedText: function () {

    //这里的this 指向的是当前的Vue 实例

    return this . text.split ( ’ , ’ ) . reverse() . join (’, ’ );

}

})

2、计算属性用法

在一个计算属性里可以完成各种复杂的逻辑,包括运算、函数调用等,只要最终返回一个结

果就可以。除了上例简单的用法,计算属性还可以依赖多个Vue 实例的数据,只要其中任一数据变化,计算属性就会重新执行,视图也会更新。

每一个计算属性都包含-个ge 忧er 和一个setter ,我们上面的两个示例都是计算属性的默认用法, 只是利用了ge忧er 来读取。在你需要时,也可以提供一个se忧er 函数, 当手动修改计算属性的值就像修改一个普通数据那样时,就会触发se忧er 函数,执行一些自定义的操作。

var app =new Vue ( {

el : ’ #app ’,

data : {

    firstName :’ Jack ’,

    lastName :’Green ’

},

computed : {

fullName : {

//getter ,用于读取

get: function () {

    return this . firstName +’’+ this . lastName; 

}

//setter ,写入时触发

set: function (newValue) {

    var names= newValue.split (”);

    this . firstName = names[O);

    this.lastName = names[names.length - l];

}

}

}

绝大多数情况下,我们只会用默认的getter 方法来读取一个计算属性,在业务中很少用到setter,所以在声明一个计算属性时,可以直接使用默认的写法,不必将getter 和setter都声明。

计算属性还有两个很实用的小技巧容易被忽略:一是计算属性可以依赖其他计算属性: 二是计算属性不仅可以依赖当前Vue 实例的数据,还可以依赖其他实例的数据;

3、计算属性缓存

一个计算属性所依赖的数据发生变化时,它才会重新取值,所以text 只要不改变,计算属性也就不更新;

使用计算属性还是methods 取决于你是否需要缓存,当遍历大数组和做大量计算时,应当使用计算属性,除非你不希望得到缓存。

相关文章

网友评论

      本文标题:四、Vue计算属性

      本文链接:https://www.haomeiwen.com/subject/qnmhaftx.html