当前位置: Vue教程 > 04-计算与监听 > 阅读正文

vue计算属性介绍

2021.6.2.   439 次   834字

Vue对象中, 一个重要的属性是computed, 常用于计算属性

看下面的例子, 是把 hello 单词反转

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<h2>计算属性的例子</h2>
<div id="example">
  <p>原始的字符串: "{{ message }}"</p>
  <p>计算属性后反转的字符串: "{{ reversedMessage }}"</p>
</div>
<script>
		var vm = new Vue({
		  el: '#example',
		  data: {
			message: 'Hello'
		  },
		  computed: {
			// 计算属性的 getter
			reversedMessage: function () {
			  // `this` 指向 vm 实例
			  return this.message.split('').reverse().join('')
			}
		  }
		});
</script>

它能够把属性 hello 进行一些 js 代码处理, 并返回, 也就是对它进行了计算

看起来它和方法是差不多的, 但它和方法是有区别的, 后面我们将讲到

值得一提的是, 如果你直接使用 {{}} 中实现反转的功能也是可以的,

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

这样做的坏处就是让模板过于沉重, 要读完代码才知道要显示 message 的反转. 而且在另一个组件上调用此输出又得重新写一遍, 故对任何复杂的逻辑处理, 你应该使用计算属性.

在上面的例子中, reversedMessage可以理解是 vm 的一个变量, 你可以通过 vm.reversedMessage 获取它的值, 这和{{reversedMessage}}是一样的效果

此外, vm.reversedMessage 可以理解为 message 的一个处理后的 getter 方法, 也就是 vm.reversedMessage 实际上是message一个取值兼处理的方法.

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群