Vue Computed属性的实现原理深入讲解

分类:知识百科 日期: 点击:0

Vue Computed属性是Vue中一种特殊的属性,它的值是根据它的依赖属性计算得出的,它可以替代普通属性,让代码更加简洁。Computed属性的实现原理是Vue将Computed属性当做一个依赖,当依赖的属性发生变化时,Vue会自动触发Computed属性的重新计算,从而更新它的值。

使用方法

Vue Computed属性的使用方法非常简单,只需要在Vue实例中定义一个computed属性,并且指定它的getter函数即可。

// 定义一个Vue实例
var vm = new Vue({
  data: {
    message: 'Hello World'
  },
  computed: {
    reversedMessage: function () {
      return this.message.split('').reverse().join('')
    }
  }
})

在上面的例子中,我们定义了一个computed属性reversedMessage,它的值是message属性的字符串翻转,我们可以通过vm.reversedMessage访问它的值,它的值会自动更新,当message属性发生变化时。

除了指定getter函数,Vue还支持指定setter函数,当我们给computed属性赋值时,setter函数会被调用,我们可以在setter函数中更新依赖的属性,从而更新computed属性的值。

// 定义一个Vue实例
var vm = new Vue({
  data: {
    message: 'Hello World'
  },
  computed: {
    reversedMessage: {
      get: function () {
        return this.message.split('').reverse().join('')
      },
      set: function (newValue) {
        this.message = newValue.split('').reverse().join('')
      }
    }
  }
})

实现原理

Vue Computed属性的实现原理是Vue将Computed属性当做一个依赖,当依赖的属性发生变化时,Vue会自动触发Computed属性的重新计算,从而更新它的值。

Vue在初始化实例时,会把computed属性转换成一个计算属性watcher,该watcher会被加入到依赖的属性的依赖列表中,当依赖的属性发生变化时,Vue会通知该watcher,从而触发它的计算函数,重新计算computed属性的值,并更新它的值。

Vue还会对computed属性进行缓存,当computed属性的依赖属性没有发生变化时,Vue会直接返回它的缓存值,从而提高性能。

Vue Computed属性是Vue中一种特殊的属性,它的值是根据它的依赖属性计算得出的,它可以替代普通属性,让代码更加简洁。Computed属性的实现原理是Vue将Computed属性当做一个依赖,当依赖的属性发生变化时,Vue会自动触发Computed属性的重新计算,从而更新它的值,Vue还会对computed属性进行缓存,当computed属性的依赖属性没有发生变化时,Vue会直接返回它的缓存值,从而提高性能。

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。