watch侦听器和computed计算属性

本文详细介绍了Vue.js中watch侦听器的使用,包括方法格式、对象格式、深度监听以及直接监听对象子属性的方式。同时,探讨了计算属性的概念,它是如何根据依赖属性变化自动更新的,并展示了模板字符串在计算属性中的应用。文章通过实例演示了如何在Vue项目中实现数据变化的监听和响应式计算。
摘要由CSDN通过智能技术生成

侦听器

  • 侦听器用于开发者监视某些数据的变化 从而针对数据的变化做特定的操作
  • 参数新值在前,旧值在后

方法格式的侦听器

  • 缺点:无法在刚进入页面就侦听一次
watch: {
	msg(newVal,oldVal){
		console.log(newVal,oldVal);
	}
}

对象格式的侦听器

  • 可以:通过immediate选项让侦听器自动触发
watch: {
	msg:{
		handler(newVal,oldVal){
			console.log(newVal,oldVal);
		},
		immediate: true
	}
}

深度监听

  • 对象格式中加入deep:true
watch: {
	info:{
		handler(newVal,oldVal){
			console.log(newVal,oldVal);
		},
		immediate: true,
		deep: true
	}
}

直接监听对象子属性

  • 对象调用属性后用单引号包裹
watch: {
	'info.msg':{
		handler(newVal){
			console.log(newVal);
		}
	}
},

计算属性

  • 使用的时候当作属性来使用
  • 经过一系列的运算之后最终得到一个属性值,只要被依赖的属性发生改变就会触发计算属性
  • 定义在computed节点下
  • 计算属性在定义的时候要定义成方法格式
<div class="app">
	r:{{r}} g:{{g}} b{{b}} rgb{{rgb}}
	<div>
		<button @click="change()">修改msg</button>
	</div>
</div>
<script>
	var vm =  new  Vue({
		el : '.app',
		data () {
			return {
				r : 0,
				g : 0,
				b : 0
			}
		},
		computed: {
			rgb() {
				// return 'rgb('+this.r+','+this.r+','+this.r+')'
				return `rgb(${this.r},${this.g},${this.b})`
			}
		},
		methods: {
			change(){
				this.b += 1
			}
		}
	})
	console.log(vm);
</script>

模板字符串

  • 反引号引起来
return `rgb(${this.r},${this.g},${this.b})`
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值