集册 Vue.js 教程 计算属性

计算属性

Xebcnor     最近更新时间:2020-08-04 05:37:59

85

Vue.js 的内联表达式非常方便,但它最合适的使用场景是简单的布尔操作或字符串拼接。如果涉及更复杂的逻辑,你应该使用计算属性

在 Vue.js 中,你可以通过 computed 选项定义计算属性:

var demo = new Vue({
  data: {
    firstName: 'Foo',
    lastName: 'Bar'
  },
  computed: {
    fullName: {
      // getter 应返回计算后的值
      get: function () {
        return this.firstName + ' ' + this.lastName
      },
      // setter 是可选的
      set: function (newValue) {
        var names = newValue.split(' ')
        this.firstName = names[0]
        this.lastName = names[names.length - 1]
      }
    }
  }
})
demo.fullName // 'Foo Bar'

当你只需要 getter 的时候,你可以直接提供一个函数:

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

一个计算属性本质上是一个被 getter/setter 函数定义了的属性。计算属性使用起来和一般属性一样,只是在访问它的时候,你会得到 getter 函数返回的值,改变它的时候,你会触发 setter 函数,新值将会作为 setter 的参数被传入。

展开阅读全文