Vue computed计算属性的使用方法

computed

computed:相当于method,返回function内return的值赋值在html的DOM上。但是多个{{}}使用了computed,computed内的function也只执行一次。仅当function内涉及到Vue实例绑定的data的值的改变,function才会从新执行,并修改DOM上的内容

computed和method的对比

rush:xhtml;">

这个是vue官网一直拿来作为例子的代码。在{{}}可以很方便的放入单个表达式,但是当一个HTML的DOM里面存在太多的表达式,程序会变得很笨重难于维护。

html

rush:xhtml;">
mputed的区别
fullName
{{fullName}}
fullName2
{{fullName}}
fullNameMethod
{{getFullName()}}
fullNameMethod2
{{getFullName()}}

js

rush: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);

控制台输出的结果

mputed 执行了methods 执行了methods 执行了computed 执行了methods 执行了methods

由此可见使用computed,function只会执行一次。当Vue实例中绑定的data数据改变的时候,computed也相对应的只改变一次。

相同点:

在以上代码中,两个p标签都会打印出同样被反转的Hello。

不同点:

使用了methods的:HTML中,每一个调用了Vue的methods的方法,都需要执行一遍reversedMessage()这个方法; 而使用computed计算属性的,只执行一遍将结果保存在缓存中。

computed和watch的对比

html

rush:xhtml;">

js

rush: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 } } })
rush:js;"> var vm = new Vue({ el: '#demo',lastName: 'Bar' },computed: { fullName: function () { return this.firstName + ' ' + this.lastName } } })

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

相关文章

可以通过min-width属性来设置el-table-column的最小宽度。以...
yarn dev,当文件变动后,会自动重启。 yanr start不会自动重...
ref 用于创建一个对值的响应式引用。这个值可以是原始值(如...
通过修改 getWK005 函数来实现这一点。这里的 query 参数就是...
<el-form-item label="入库类型" ...
API 变动 样式类名变化: 一些组件的样式类名有所变动,可能需...