vue计算属性

117 阅读1分钟

模板内设计它们的初衷是用于简单运算,对于任何复杂逻辑,你都应当使用计算属性。

计算属性和方法的区别和联系?

  1. 计算属性会缓存 ,方法不会缓存
  2. 理论能用计算属性的都可以用方法

计算属性和监听器区别和联系?

  • 监听器和计算属性类似,会有缓存
  • computed擅长处理的场景:一个数据受多个数据影响
  • watch擅长处理的场景:一个数据影响多个数据
  • 计算属性在大多数情况下更合适,当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的
  • 计算属性中会用到data里面定义的属性
  • 监听器是监听data里面定义的属性

看代码

计算属性

<div id="example">

  <p>Original message: "{{ message }}"</p>

  <p>Computed reversed message: "{{ reversedMessage }}"</p>

</div>

var vm = new Vue({

  el: '#example',

  data: {

    message: 'Hello'

  },

  computed: {

    // 计算属性的 getter

    reversedMessage: function () {

      // `this` 指向 vm 实例

      return this.message.split('').reverse().join('')

    }

  }

})

方法


<p>Reversed message: "{{ fullName() }}"</p>


// 在组件中

methods: {

 fullName: function () {

  console.log("计算了一次")

  return this.firstName + " " + this.lastName;

 }

}

监听器

var vm = new Vue({

 el: '#app',

 data: {

  firstName: "王",

  lastName: "小智",

  age: 28,

  fullName

 },

 // 监听器

 watch: {

   firstName: function () {

    console.log("计算了一次");

    this.fullNmae = this.firstName + this.lastName;

   },

   lastName: function () {

    console.log("计算了一次")

    this.fullNmae = this.firstName + this.lastName;

   }

 }

})

vue官网