Vue computed计算属性的使用方法
2017-07-14 11:02
1381 查看
computed
computed:相当于method,返回function内return的值赋值在html的DOM上。但是多个{{}}使用了computed,computed内的function也只执行一次。仅当function内涉及到Vue实例绑定的data的值的改变,function才会从新执行,并修改DOM上的内容。
computed和method的对比
<div id="example"> {{ message.split('').reverse().join('') }} </div>
这个是vue官网一直拿来作为例子的代码。在{{}}可以很方便的放入单个表达式,但是当一个HTML的DOM里面存在太多的表达式,程序会变得很笨重难于维护。
html
<div id="app9"> 9、method与computed的区别<br/> fullName<br/> {{fullName}}<br/> fullName2<br/> {{fullName}}<br/> fullNameMethod<br/> {{getFullName()}}<br/> fullNameMethod2<br/> {{getFullName()}}<br/> </div>
js
var app9 = new Vue({ el: '#app9', data: { firstName: 'Foo', lastName: 'Bar' }, methods:{ getFullName:function () { console.log("执行了methods") return this.firstName+" " +this.lastName; } }, computed: { fullName: function () { console.log("执行了computed") return this.firstName + ' ' + this.lastName } } }) setTimeout('app9.firstName="Foo2"',3000);
控制台输出的结果
执行了computed
执行了methods
执行了methods
执行了computed
执行了methods
执行了methods
由此可见使用computed,function只会执行一次。当Vue实例中绑定的data数据改变的时候,computed也相对应的只改变一次。
相同点:在以上代码中,两个p标签都会打印出同样被反转的Hello。
不同点:
使用了methods的:HTML中,每一个调用了Vue的methods的方法,都需要执行一遍reversedMessage()这个方法;
而使用computed计算属性的,只执行一遍将结果保存在缓存中。
computed和watch的对比
html
<div id="demo">{{ fullName }}</div>
js
var vm = new Vue({ el: '#demo', data: { firstName: 'Foo', lastName: 'Bar', fullName: 'Foo Bar' }, watch: { firstName: function (val) { this.fullName = val + ' ' + this.lastName }, lastName: function (val) { this.fullName = this.firstName + ' ' + val } } })
var vm = new Vue({ el: '#demo', data: { firstName: 'Foo', lastName: 'Bar' }, computed: { fullName: function () { return this.firstName + ' ' + this.lastName } } })
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- Vue1.0学习总结(3)———vue1.0的生命周期、vue计算属性computed的使用、vue实例(vm)上方法总结、vue结合动画使用
- vue computed计算属性使用
- vue.js使用之计算属性与方法返回的差别
- 关于vue的使用计算属性VS使用计算方法的问题
- 使用weight属性时View宽度的计算方法
- 关于android中使用weight属性实现多个layou比例布局的计算方法
- vue计算属性的使用和vue实例的方法
- vue中的计算属性的使用和vue实例的方法示例
- 使用计算总内存大小的方法确定jvm中为对象分配的存储空间大小
- 【CSS样式层叠表】:position属性|static|absolute|relative|fix|四种控制方式的使用方法
- JS自定义data-*属性与jquery的data()方法的使用
- 使用setter方法和=号进行属性赋值的区别
- Android 中自定义控件和属性(attr.xml,declare-styleable,TypedArray)的方法和使用
- Android 中自定义控件和属性(attr.xml,declare-styleable,TypedArray)的方法和使用 一
- 【SSH三大框架】Hibernate基础第十三篇:lazy、constrained、fetch三个属性的作用和使用方法
- 当一个方法只在父类中定义时,调用该方法时会使用父类中的属性
- javascript 定义对象、方法和属性的使用方法(prototype)
- Android 中自定义控件和属性(attr.xml,declare-styleable,TypedArray)的方法和使用 .
- iOS - UILabel属性设置和常见使用方法
- [Android]Android布局文件中的android:id="@*"属性使用方法汇总以及介绍