为啥要在 vue.js 中计算属性?

Posted

技术标签:

【中文标题】为啥要在 vue.js 中计算属性?【英文标题】:Why computed property in vue.js?为什么要在 vue.js 中计算属性? 【发布时间】:2019-02-23 02:17:51 【问题描述】:

我是 vue.js 的初学者。使用计算属性而不是方法的原因是什么。为什么要问这个问题,因为计算属性和方法都做同样的事情

【问题讨论】:

Method vs Computed in Vue的可能重复 你可以阅读vuejs.org/v2/guide/computed.html 【参考方案1】:

方法可以获取属性,需要手动调用,计算则不然。 此外,您无需在多次使用时克隆代码。将计算属性想成是您的附加逻辑的捷径。

在模板中加入过多的逻辑会使它们变得臃肿且难以维护。例如:

<div id="example">
   message.split('').reverse().join('') 
</div>

同样,使用计算属性:

<div id="example">
   reversedMessage 
</div>

Vue 代码:

var vm = new Vue(
  el: '#example',
  data: 
    message: 'Hello'
  ,
  computed: 
    // a computed getter
    reversedMessage: function () 
      // `this` points to the vm instance
      return this.message.split('').reverse().join('')
    
  
)

区别

但我认为主要区别在于缓存。当您调用 method 5 次时,您将获得 5 次计算。另一方面,计算属性只计算一次(在更改时),然后返回一个缓存值。

【讨论】:

以上是关于为啥要在 vue.js 中计算属性?的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js 计算属性

Vue.js 计算属性

Vue.js 计算属性

Vue JS计算属性没有重新计算

Vue.js 修改计算属性?

组件渲染时Vue JS计算属性尚不可用