2018-03-25

计算属性(二)

模板中绑定的数据依赖于data中的数据,data中的数据更新会时模板相应更新。

计算属性缓存 vs 方法

这小节说的是计算属性与methods的区别,文档开头说了methods同样可以完成计算的效果,两种方法最终可以完成的结果时相同的。

不同点:vue的特点之一是复用性,使得小路提高,methods的方法每一次触发都有需要重新计算、渲染,而计算属性只有在依赖的数据发生更新时才会再次计算,否则会缓存,这样做大大的提高了效率,依赖的数据必须在data中才能是响应式的。

但是有时候,当我们不需要缓存时,可以使用方法替代。

计算属性 vs 侦听属性

说的是watch, watch可以监听数据变化,并在数据变化的时候“做一点其他的事情”

原文中给出了这算代码:

<div id="demo">{{ fullName }}</div>

使用watch的方法:

var vm = new Vue({
  el: '#demo',
  data: {
    firstName: 'Foo',
    lastName: 'Bar',
    fullName: 'Foo Bar'
  },
  watch: {
    firstName: function (val) {
      this.fullName = val + ' ' + this.lastName
    },
    lastName: function (val) {
      this.fullName = this.firstName + ' ' + val
    }
  }
})

使用计算属性的方法:

var vm = new Vue({
  el: '#demo',
  data: {
    firstName: 'Foo',
    lastName: 'Bar'
  },
  computed: {
    fullName: function () {
      return this.firstName + ' ' + this.lastName
    }
  }
})

文档中指出,使用watch的代码片段是重复的。使用计算属性的代码并没有重复,是更好的。并建议我们不要滥用watch。

我的理解是:watch 的作用主要是监听数据变化,在数据变化是做一点“其他的事情”,而非像上面代码一样对数据进行再加工,对数据进行再加工应该交给更专业的计算属性来完成。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,399评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,934评论 25 709
  • 第三讲作业: 1.以《三言两拍》中“二拍”的第一篇为标尺,确定出自己的阅读层次,并据此制定一个阅读套餐。(文言几...
    觉者行者阅读 306评论 2 0
  • 类扫描注解 案例 1、创建实例(Persion和Student) 2、配置文件进行配置 3、测试 步骤: 1、启动...
    he_321阅读 387评论 0 0
  • 每天都会因为一些小事而感到一点点的不愉快,小小的不愉快堆积起来就变成了心理的烦闷,然而,一首大振的纯音乐就会让心情...
    云棠tyan阅读 154评论 0 0

友情链接更多精彩内容