Vue初学——计算属性Computed和Methods

本文对比了Vue中computed和methods的区别,指出computed计算属性仅在创建时执行一次,适合频繁调用的场景,而methods每次实例化都会执行,适用于少次调用。通过示例代码验证了两者执行次数的不同。
摘要由CSDN通过智能技术生成

methods

methods是一个vue对象中的属性,而在这个属性中,写的是种种要实现的方法.

computed

computed是一个属性,在属性中写的也是要实现的方法,那其中同方法一样的写法,总是让人觉得这里面要调用计算属性中的一个成员要用方法的形式,但实际上不用这样

那么问题就来了,既然这两个的作用都一样,那么有什么区别呢

computed在创建后只会调用一次其中的函数,而methods只要你每创建一个,就会调用一个,那么执行方法也需要不少时间,如果是只要调一两次方法倒还好说,如果有上百个次,那么它们的差异就不言而喻了。

接下来验证下它们的差异

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="app">
			<h2>{{fullName}}</h2>
			<h2>{{fullName}}</h2>
			<h2>{{fullName}}</h2>
			<h2>{{fullName}}</h2>
			<h2>{{fullName}}</h2>
			<h2>{{getFullName()}}</h2>
			<h2>{{getFullName()}}</h2>
			<h2>{{getFullName()}}</h2>
			<h2>{{getFullName()}}</h2>
			<h2>{{getFullName()}}</h2>
		</div>
	</body>
	<script type="text/javascript">
		let computed_count=1,methods_count=1;
		var vm=new Vue({
			el:'#app',
			data:{
				firstname:'Sherlock',
				lastname:'Holmes',
			},
			computed:{
				fullName()					
				{
					console.log('computed_times='+computed_count);
					computed_count++;
					return this.firstname+' '+this.lastname;
				}
			},
			methods:{
				getFullName()					
				{
					console.log('methods_times='+methods_count);
					methods_count++;
					return this.firstname+' '+this.lastname;
				}
			}
		});
	</script>
</html>

在这里插入图片描述

输出的结果自然没什么不同

在这里插入图片描述

但是在这里就能看出差异,computed计算属性中的方法只是执行了一次,而methods中的方法却执行了五次.

得出结论,如果要频繁的调用一个方法,那么应该放在computed计算属性中.相反,如果只需要调用一两次,那么选用methods可能更为合适

如有不足,欢迎指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值