Vue中的 computed计算属性侦听watch监听属性的区别

本文详细介绍了Vue.js中计算属性的使用规则,包括如何通过`computed`计算并更新不存在的属性,以及简写方式的注意事项。同时对比了计算属性与`watch`监听属性的异同,强调了何时使用`$watch`方法和箭头函数在特定场景中的应用。
摘要由CSDN通过智能技术生成

Vue computed计算属性

规则:
1.用已有的属性计算不存在的属性
2.默认调用一次get()
3.简写:只有值不发生改变才可以是用简写(函数),
值发生改变必须使用对象,才可以配置set()方法
4.底层原理使用Object.definproperty(目标对象,键名,{get(){},set(value){}})

<title>姓名案例_计算属性实现</title>
<script type="text/javascript" src="../js/vue.js "></script>
<div id="root">
姓: <input type="text" v-model="firstName"> <br/ >
名: <input type="text" v-model="lastName " > <br/>
测试: <input type="text" v-model="x">
<br/>
//这里修改不会调fullName的get方法全名: 
<span>iifullName}}</span> <br/>
<!--全名: <span>i{fullName}}</ span> <br / > --><! --
全名: <span>{ifullName}}</span> <br/ > --></ div>
<script type="text/javascript">
vue.config.productionTip = falseconst
 vm = new Vue( {
    el: '#root ' ,
    data: {
     firstName: '张',
     lastName: '三',
     x:"你好'
 },
   computed: i
   //完整写法
	fullName: {ll get() {
	l lconsole.log( 'get被调用了')
	llreturn this.firstName + '-' + this.lastNamel/},
	l lset( value) {
	l lconsole.log( 'set ' , value)//
	const arr = value.split( '-')
	this.firstName = arr[e]llthis.lastName = arr[1]l/}
	ll }
//简写
fullName() i
console.log( 'get被调用了')
return this.firstName + '-' +this.lastName)}
}})
</ script>

侦听属性基本用法

watch监听属性

规则:
1.监听已存在的属性
2.immediate:true默认调用一次,false不会
3.简写:只有handler方法才可以简写。写法:监听的属性(新值,旧值){}
4.监听对象中的值需要深度监听,deep:true

<title>天气案例</title>
<script type="text/javascript" src="../js/vue.js"></script>
<div id="root">
<h3>今天天气很{{ info }}</h3>
<! -- 绑定事件的时候:@xxx="yyy" yyy可以写一些简单的语句 -->
<!-- <button @click="isHot = !isHot">切换天气</button> -->
<button @click="changeweather">切换天气</button>
</div>
<script type="text/javascript">
vue.config.productionTip = falseconst 
vm = new Vue({
	el : ' #root ',
	data:{
	isHot:true,},
	computed : {info(){
	return this.isHot ?'炎热':'凉爽'
},
methods: {
	changeweather(){
	this.isHot = !this.isHot}
}})
</ script>

区别:
1.computed能做的watch都可以做,watch可以做的,computed不一定能做
2.使用vm.$watch方法时,需要使用普通函数
3.对于定时器,函数回调,ajax回调,promise回调,建议使用箭头函数

指令

// 自定义指令
        directives:{

        },
        // 计算属性
        computed:{

        },
        // 监听属性
        watch:{

        },
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值