Vue_007_合理应用计算属性和监听器

计算属性 computed

特性

  • 减少模板中计算逻辑
  • 数据缓存
  • 依赖固定的数据类型(响应式数据)

示例

<template>
	<div>
		<p>Reversed messageq1: "{{ reversedMessage1 }}"</p>
		<p>Reversed messageq2: "{{ reversedMessage2() }}"</p>
		<p> {{ now }}</p>
		<!-- 强制刷新模板 -->
		<button @click="() => $forceUpdate()"> forceUpdate </button>
		<br />
		<input v-model="message" />
	</div>
</template>
<script>
export default {
	data() {
		return {
			message: "hello vue"
		};
	},
	computed: {
		// message改变时才会执行
		reversedMessage1: function() {
			console.log(" 执行reversedMessage1 ")
			return this.message
				.split("")
				.reverse()
				.join("")
		}
	},
	methods: {
		// 每次模板刷新都会运行(计算量大)
		reversedMessage2: function() {
			console.log(" 执行reversedMessage2 ")
			return this.message
				.split("")
				.reverse()
				.join("")
		}
	}
}
</script>

监听器 watch

特性

  • 更加灵活、通用
  • watch 中可以执行任何逻辑,如函数节流、Ajax异步获取数据、操作DOM

示例

computed vs watch

  • computed能做的,watch都能做,反之则不行
  • 尽量使用computed

示例

  • fullName示例:
    • watch需要同时监听firstName和lastNam
    • computed只需要写一个拼接方法即可实现
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值