Vue 中 computed 计算属性的应用场景

时间:2021-1-8 作者:admin

计算属性是 Vue 组件的一个重要内容,它具有 分离逻辑缓存值双向绑定 等作用或功能。

分离逻辑

需求如下:

// 给定文本 text,去除其首尾空白,然后将其反转显示。
// 例:
const text = '花谢花飞花满天'
// ==> 天满花飞花谢花

不使用计算属性,代码长这样:

<template>
  <div id="example">
    {{ text.split('').reverse().join('') }}
  </div>
</template>

<script>
export default {
  data: () => ({
    text: '花谢花飞花满天'
  })
}
</script>

使用计算属性后,代码长这样:

<template>
  <div id="example">
    {{ normalizedText }}
  </div>
</template>

<script>
export default {
  data: () => ({
    text: '花谢花飞花满天'
  }),
  computed: {
    normalizedText() {
      return this.text.split('').reverse().join('')
    }
  }
}
</script>

显而易见,使用计算属性后,相关逻辑放在了 computed 选项内,模板更干净了:

缓存值

接上例,如果我们不去改变 text 的值,那么 normalizedText 就不会重新计算,也就是说,normalizedText 会缓存其求值结果,直到其依赖 text 发生改变。我们可以测试一下:

双向绑定

我们可以利用计算属性的 gettersetter 实现数据的双向绑定:

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。