Vue2.6-方法 侦听器 计算属性

73 篇文章 0 订阅
9 篇文章 0 订阅

很多时候 需要在视图中渲染的数据是通过 已经定义的多个变量通过逻辑计算返回的结果

如  已经定义  firstName lastName  现在需要渲染  fullName =  firstName + lastName 的结果

实现方法有多种:

watch(侦听器)和computed(计算属性)都具备缓存机制  但是相比较 watch需要侦听大量依赖 computed相比简洁

所以 如果一个功能 如果可用以下多种方法实现  优先推荐 computed  语法简洁 性能也高

一. 插值表达式中包含计算逻辑(模板以显示为主 包含计算逻辑 不推荐)

<div id='app'>
            {{firstName + ' ' + lastName + ' ' + age}}  <br />    
 </div>

二.自定义方法

<body>
		<div id='app'>
			{{fullName()}} &nbsp; {{age}}
		</div>

		<script>
			var app = new Vue({
				el:"#app" ,
				data:{
					firstName:'Robert',
					lastName: 'Downey' ,
					age: 18 
				},
				methods:{
					fullName:function() {
						console.log('计算了一次') ;
						return this.firstName + ' ' + this.lastName ;
					}
				}
			})
		</script>	
	</body>

三.watch 侦听器 需要分别侦听所依赖的 多个变量 页面渲染时 侦听到变化执行  否则 加载之前缓存的值

<body>
		<div id='app'>
			{{fullName}} &nbsp; {{age}}
		</div>

		<script>
			var app = new Vue({
				el:"#app" ,
				data:{
					firstName:'Robert',
					lastName: 'Downey' ,
					age: 18 ,
					fullName : "hello Vue"
				},
				watch:{
					firstName:function() {
						console.log('计算了一次') ;
						this.fullName = this.firstName + ' ' + this.lastName ;
					},
					lastName:function() {
						console.log('计算了一次') ;
						this.fullName = this.firstName + ' ' + this.lastName ;
					}
				}
				
			})
		</script>	
	</body>

四.computed 计算属性  有缓存机制  性能高 推荐

<body>
		<div id='app'>
			{{fullName}} &nbsp; {{age}}
		</div>

		<script>
			var app = new Vue({
				el:"#app" ,
				data:{
					firstName:'Robert',
					lastName: 'Downey' ,
					age: 18 
				},
				
				computed:{
					fullName:function() {
						console.log('计算了一次') ;
						return this.firstName + ' ' + this.lastName ;
					}
				}
				
			})
		</script>	
	</body>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值