<!DOCTYPE html>
<html>
<head>
<title</title>
<script src="./vue.js"></script>
</head>
<body>
<div id="app">{{fullName}}{{age}}</div>
<script>
var vm = new Vue({
el:'#app',
data:{
firstName:'shengtong',
lastName:'zhu',
age:21
},
computed:{
fullName(){
console.log("computed");
return this.firstName+' '+this.lastName;
}
}
})
</script>
</body>
</html>
计算属性会进行缓存,如果依赖的值没有发生变化,那么他不会重新进行计算,而是使用缓存的值。
通过定义一个方法也可以实现同样的功能,但是定义的方法没有缓存。
<!DOCTYPE html>
<html>
<head>
<title</title>
<script src="./vue.js"></script>
</head>
<body>
<div id="app">{{fullName}}{{age}}</div>
<script>
var vm = new Vue({
el:'#app',
data:{
firstName:'shengtong',
lastName:'zhu',
fullName:'shengtong zhu',
age:21
},
watch:{
firstName(){
this.fullName=this.firstName+' '+this.lastName;
},
lastName(){
this.fullName=this.firstName+' '+this.lastName;
}
}
})
</script>
</body>
</html>
watch也有缓存,如果修改和监听的属性不相关的属性的话,就不会重新调用。