Skip to content

模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。

在模板中放入太多的逻辑会让模板过重且难以维护。例如:

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

此时应当使用计算属性

计算属性是基于它们的响应式依赖进行缓存的

只在相关响应式依赖发生改变时它们才会重新求值。

7-1.计算属性的 setter

默认情况下,我们只会使用计算属性的 getter

js
computed: {
  fullName () {
    return this.firstName + this.lastName
  }
}

但根据实际情况,也可以提供一个 setter:

js
computed: {
  fullName: {
    get () {
      return this.firstName + this.lastName
    },
    set (value) {
      const nameList = value.split(' ')
      this.firstName = nameList[0]
      this.lastName = nameList[1]
    }
  }
}