vue的计算属性

vue 计算属性:
有的时候我们需要在模板中使用数据,这个时候就需要用到表达式,但是有的地方我们需要对数据进行一些简单的处理后才能使用,那么我们就会在表达式中写一些js逻辑运算,如下

<div id="example">
	    {{ message.split('').reverse().join('') }}
	</div>

如果表达式过长,或逻辑复杂时,代码就会变得难以阅读和维护,在遇到复杂的逻辑时不应该使用表达式而是使用计算属性

<div id="app">
	<!-- {{ message.split('').reverse().join('') }} -->
	<p>{{message}}</p>
	<p>{{inverted}}</p>
</div>
<script type="text/javascript">
			let vm = new Vue({
				el:"#app",
				data:{
					message:'123456789'
				},
				//计算属性
				computed:{
					inverted(){
						  return this.message.split('').reverse().join('')
					}
				}
			})
		</script>

计算属性虽然也是使用的函数但是文本插值函数 后面不能加()

<div id="app">
	 使用 <p>{{inverted}}</p>没问题
	 使用  <p>{{inverted()}}</p>会去methods找,而methods什么都没有,就会报错
</div>
computed:{
	inverted(){
		return this.message.split('').reverse().join('')
			  }
		},
methods:{
		}

计算属性和方法
我们可以在methods设置一个方法,它和计算属性的结果是相同的,但是使用方法每次渲染的时候都会执行这个函数,而计算属性有缓存,只有相关依赖发生变化才会重新进行求值,否则会返回之前的结果

计算属性的 set
一般来说计算属性是默认get但是也能使用set,这时候就应该使用对象的方式

<div id="app">
			<input type="text" v-model="examine"/>
			<h2>{{message}}</h2>
		</div>
<script type="text/javascript">
			let vm = new Vue({
				el:"#app",
				data:{
					message:"你好"
				},
				computed:{
					examine :{
						get(){
							return  this.message
						},
						set(val){
							 this.message = val
						}
					}
				}
			})
		</script>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值