vue计算属性computed和监视器watch的使用
Posted 老张在线敲代码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue计算属性computed和监视器watch的使用相关的知识,希望对你有一定的参考价值。
计算属性
1) 在 computed 属性对象中定义计算属性的方法
2) 在页面中使用{{方法名}}来显示计算的结果
监视属性
1) 通过通过 vm 对象的$watch()或 watch 配置来监视指定的属性
2) 当属性变化时, 回调函数自动调用,在函数内部进行计算
计算属性高级
1) 通过 getter/setter 实现对属性数据的显示和监视
2) 计算属性存在缓存, 多次读取只执行一次 getter 计
<template>
<div>
姓:<input type="text" v-model="firstname"><br>
名:<input type="text" v-model="lastname"><br>
姓名1(单向)<input type="text" placeholder="firstname1" v-model="fullName1"><br>
姓名2(单向)<input type="text" placeholder="firstname2" v-model="fullName2"><br>
姓名2(双向)<input type="text" placeholder="firstname3" v-model="fullName3"><br>
<p>{{fullName1}}</p>
<p>{{fullName1}}</p>
<p>{{fullName1}}</p>
</div>
</template>
<script>
export default{
data(){
return{
firstname:"",
lastname:"",
}
},
// getter:属性的get方法
// setter:属性的set方法
// 计算属性存在缓存,多次读取只需要执行一次getter计算
computed: {
// 初始化显示,初始化相关的data发生改变时候执行
fullName1(){//计算属性的一个方法,方法的返回值作为属性值
return this.firstname + '' + this.lastname
},
fullName3 :{
get(){
//什么时候调用回调函数?
// 答案:初始化显示,初始化相关的data发生改变时候执行
//用来干嘛的?
// 答案:计算并返回当前属性的值
return this.firstname + '' + this.lastname
},
//回调函数,监视当前属性值的变化当属性值发生改变时执行,更新相关的属性数据(输入框输入东西时候)
set(value){//value就是fullName3的最新属性值
console.log(value)
const names = value.split(' ')
this.firstname = names[0]
this.lastname = names[names.length-1]
}
}
},
watch: {
//监听firstname
firstname:function(newval,oldval){//说明firstname发生了变化,触发回调函数的内容
console.log(this)//就是vue实例对象
this.fullName2 = newval + '' +this.lastname
},
// //监听lastname
// lastname:function(newval,oldval){//说明firstname发生了变化,触发回调函数的内容
// this.fullName2 = this.firstname + '' + newval
// }
},
methods:{
}
}
</script>
以上是关于vue计算属性computed和监视器watch的使用的主要内容,如果未能解决你的问题,请参考以下文章