您现在的位置:首页 >> 前端 >> 内容

Vue的computed模板学习

时间:2017/12/21 11:11:20 点击:

  核心提示:根据官网文档,模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护我们可以知道computed第一个作用是将复杂的逻辑简化到一个于一个函数内部,对外...

根据官网文档,模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护我们可以知道computed第一个作用是将复杂的逻辑简化到一个于一个函数内部,对外表现成一个有返回值的变量。

<p id="example">
  <p>Original message: "{{ message }}"</p>
  <p>Computed reversed message: "{{ reversedMessage }}"</p>
</p>
var vm = new Vue({
  el: '#example',
  data: {
    message: 'Hello'
  },
  computed: {
    // 计算属性的 getter
    reversedMessage: function () {
      // `this` 指向 vm 实例
      return this.message.split('').reverse().join('')
    }
  }
})

由此我们可以想到,使用函数也可以达到相同的效果,我们为什么使用computed呢?

原因是computed可以缓存结果,多次访问,如果computed依赖的值没有变化,将会直接输出缓存的值。只有computed依赖的值有变化,才会再次计算。 computed除了geter 也有setter,setter就是在computed相关的值进行赋值的时候会触发的函数。

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]
    }
  }
}

Tags:VU UE E的 的C 
作者:网络 来源:qq_2739580