0106计算属性和侦听属性

001_计算属性和侦听属性(h3)

  • 模板是简单的声明式逻辑,对于任何复杂逻辑,你都应当使用计算属性。

  • watch 侦听属性 通常用来监听单个,监听多个需要写重复代码。当需要在数据变化时执行异步或开销较大的操作时,侦听属性是最有用的。

  • computed 计算属性 通常用来监听多个,多数情况下更合适

  • 我们可以通过在表达式中调用方法来达到和使用计算属性同样的效果

  • 不同的是计算属性是基于它们的响应式依赖进行缓存的。只在相关响应式依赖发生改变时它们才会重新求值。

  • 当watch监听的是复杂数据类型的时候需要做深度监听

  • computed 监视对象,写在了函数内部, 凡是函数内部有this.相关属性,改变都会触发当前函数

  • 源代码

<html>
<head>
	<title></title>
</head>
<body>
	<div id="app">		
		<div>watch侦听基本数据类型</div>
		<input type="text" name="aaaaaaaaaaaaaa" class="bbbbbbbbbbbbbb" v-model='msg01_dl'>
		<div>watch侦听复杂数据类型</div>
		<input type="text" name="" v-model='msg02_dl.text02_dl'>
		<div>computed计算属性</div>
		(<input type="text" name="" v-model='n1'>+
		<input type="text" name="" v-model='n2'>)*
		<input type="text" name="" v-model='n3'>={{result}}
	</div>

	<script type="text/javascript" src="../js/vue.js"></script>
	<script type="text/javascript">
		
		new Vue({
			el:'#app',
			data(){
				return {
					msg01_dl:'initial_value_dl',
					msg02_dl:{text02_dl:'initial_value_dl'},
					n1:'',
					n2:'',
					n3:'1'
				}
			},
			// computed监听多个
			computed:{
				result(){
					return (Number(this.n1)+Number(this.n2))*Number(this.n3)
				}
			},
			// watch监听单个
			watch:{
				/* watch监基本数据类型 第一个参数是新数据,第二个参数是旧数据*/
				msg01_dl(newval,oldval){
					if(newval=='caojiwan'){
						alert(newval)
					}
				},
				/* watch监复杂数据类型 第一个参数是新数据,第二个参数是旧数据*/
				msg02_dl:{
					handler(newval,oldval){
						if(newval.text02_dl=='caojiwan'){
							alert(newval.text02_dl)
						}
					},
					deep:true
				}
			}
		})
	</script>
</body>
</html>
  • 浏览器界面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值