计算属性的缓存
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>计算属性和methods</title>
</head>
<body>
<div id="app">
<!--通过定义methods-->
<h2>{{getFullName()}}</h2>
<h2>{{getFullName()}}</h2>
<h2>{{getFullName()}}</h2>
<h2>{{getFullName()}}</h2>
<!--通过定义computed-->
<h2>{{fullName}}</h2>
<h2>{{fullName}}</h2>
<h2>{{fullName}}</h2>
<h2>{{fullName}}</h2>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
firstName: 'kobe',
lastName: 'Bryant',
},
computed: {
fullName:function () {
console.log('我是computed');
return this.firstName+' '+this.lastName;
}
},
methods: {
getFullName:function () {
console.log('我是methods');
return this.firstName+' '+this.lastName;
}
}
});
</script>
</body>
</html>
注意点
方法每次调用被会被执行一次,即使没有任何变化,相同的语句,但是computed计算属性,被执行一次就会有缓存,如果下次执行没有发生任何变化,那么不会执行计算属性中的函数,直接返回结果。假设该函数中有多次循环,每次都执行一次,效率十分低下。