methods,计算属性和监视

本文详细介绍了Vue.js中methods、computed和watch的用法。methods用于定义方法,computed创建计算属性,watch则用于监听数据变化并执行相应操作。计算属性在数据变化时自动更新,而watch可以执行异步任务或复杂逻辑。文章强调了函数的this指向问题,并通过示例代码展示了三者在实际场景中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

methods

<body>
<div id="app">{{info()}}</div>
<script>
   let obj={
		name:'wzm',
		age:22
	}
	const vm = new Vue({
		el:'#app',
		data:obj,
		methods:{
			info(){
			return this.name+this.age
			}
	}

})
</script>
</body>

计算属性(computed)

<body>
<div id="app">{{info}}</div>
<script>
   let obj={
		name:'wzm',
		age:22
	}
	const vm = new Vue({
		el:'#app',
		data:obj,
		computed:{
		     //精简
			info(){
			return this.name+this.age
			},  
				
			//完整	
			 // info:{
                //     get(){
                //         return this.name+'今年'+this.age
                //     },
                //     set(value){
                //         this.name=value;
                //         this.age=value;
                //     }
                // }
			
	}

})
</script>
</body>

watch

<body>
    <div id="app">
        <input type="text" v-model="name"><br/><br/>
        <input type="text" v-model="address"><br/><br/>
        <p>{{out}}</p>
    </div>
    <script>
        let info={
            name:'wzm',
            address:'hubei',
            out:'我叫wzm,来自hubei'
        }

        const vm = new Vue({
            el:'#app',
            data:info,
            watch:{
               name(value){
                  setTimeout(()=>{
                    this.out='我叫'+value+',来自'+this.address;
                },1000)
                //一秒钟得到值
                },
                address(value){
                    this.out='我叫'+this.name+',来自'+value;
                }
            }
        })
    </script>

</body>

异步任务使用监视(定时器)

computed与watch之间的区别:
1.computed能完成的功能,watch都能完成
2.watch能完成的功能,computed不一定能完成,例如:watch可以进行异步任务
两个重要的原则:
1.所被vue管理的函数,最好写成普通函数,这样this的指向才是vm或 组件实例对象
2.所有不被vue管理的函数(定时器的回调函数,ajax的回调函数,promise等),最好写成箭头函数,这样this的指向才是vm或 组件实例对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值