计算属性、侦听器

本文详细介绍了Vue.js中的计算属性(computed)和侦听器(watch)的使用方法。计算属性用于根据其他数据动态计算结果,而侦听器则用于响应数据变化并执行特定操作。文章通过实例展示了如何利用这些特性提高应用性能。
摘要由CSDN通过智能技术生成

计算属性:computed
使用方法:

<div id="app">
	{{result}}
</div>
<script>
export default {
    el: '#app',
    data: {
        first: 1,
        last: 2
    },
    computed: {
    	// 相当于data中多了一个result属性,只是有computed计算所得
        result: function(){
            return +this.first + +this.last;
        }
    }
}
</script>

computed会监控函数内部的其他变量,当其中一个变量值发生改变是,会重新计算返回新的变量值。

侦听器:watch

作用:watch属性可以监听摸个变量的变化,该变量发生变化时会执行对应的处理

<div id="app">
    <input v-model="first"/> + <input v-model="last"/> 結果: {{ result }}
</div>
--------------------------------------------------------------------------------
<script>
    export default {
        el: '#app',
        data: {
            first: 0,
            last: 0,
            result: 0
        },
        watch: {
            first: function(val){
                this.result = +val + +this.last;
            },
            last: function(val){
                this.result = this.first + +valt;
            },
        }
    }
</script>

watch深度监听对象

作用:深度监听是针对对象内部的对象发生改变时使用。这里处理方式和普通监听不同,普通监听通过函数来处理,深度监听使用对象方式,对象下两个属性deep,handler

监听方式:

watch: {
    [需要监听的数据]: {
        // 声明了使用深度监听
        deep: true, 
        // 处理函数,val是当前数据, oldVal是数据修改前的值
        handler: function(val, oldVal){ 
        }
    }
}
//案例:
watch:{
    //普通的watch监听
    a: function(val, oldVal){
        console.log("a: "+val, oldVal);
    },
	//深度监听,可监听到对象的变化
	b:{
		deep:true,
		handler: function (val, oldVal) {
			console.log("b.c: "+val.c, oldVal.c);
		},
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值