Vue中methods和computed的区别

Vue中methods和computed的区别

1.用法不同

methods的用法:

<div id="root"> 
	<input type="text" v-model="firstname"><br>
	<input type="text" v-model="lastname"><br>
    <!--methods内的方法调用时必须加()-->
	<span>{{fullName()}}</span>
</div>
<script type="text/javascript">
	new Vue({
		el:'#root',
		data:{
			firstName:'张',
			lastName: '三'
		},
		methods:{
			fullName(){
				return this.firstName + '-' + this.lastName
			}
		}
	})
</script>

computed用法:

<div id="root">
	<input type="text" v-model="firstName"><br>
	<input type="text" v-model="lastName"> <br>
    <!--computed内的方法调用时不需加(),当成属性使用即可-->
	<span>{{fullName}}</span>
</div>
<script type="text/javascript">
	Vue.config.productionTip = false;
	const vm = new Vue({
		el:"#root",
		data:{
			firstName:'张',
			lastName:'三'
		},
		computed:{
			fullName(){
				return this.firstName+'-'+ this.lastName
			}
		}
	});
</script>

2.作用不同

​ computed数据是响应式的,如果数据层的值变了,computed就会实时更新到视图层上。

3.原理不同

01.computed底层借助了 Object.defineproperty()方法提供的getter和setter

02.computed内部有缓存机制,只有其引用的响应式属性发生改变时才会重新计算,而methods里的函数在每次调用时都要执行。

03.computed中的成员可以只定义一个函数作为只读属性,也可以定义get/set变成可读写属性,这点是methods中的成员做不到的

04.若计算属性要修改,需调用set函数去响应修改

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值