Vue computed计算属性的使用方法

网友投稿 534 2023-04-27


Vue computed计算属性的使用方法

computed

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

computed和method的对比

{{ message.split('').reverse().join('') }}

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

html

9、method与computed的区别

fullName

{{fullName}}

fullName2

{{fullName}}

fullNameMethod

{{getFullName()}}

fullNameMethod2

{{getFullName()}}

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="Fohttp://o2"',3000);

控制台输出的结果

执行了computed

执行了methods

执行了methods

执行了computed

执行了methods

执行了methods

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

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

不同点:

使用了methods的:HTML中,每一个调用了Vue的methods的方法,都需要执行一遍reversedMessage()这个方法;

而使用computed计算属性的,只执行一遍将结果保存在缓存中。

computed和watch的对比

html

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

}

}

})


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:深入理解angular2启动项目步骤
下一篇:Vue 2.0在IE11中打开项目页面空白的问题解决
相关文章

 发表评论

暂时没有评论,来抢沙发吧~