前段时间因为工作需要学习了前端Vue框架,目前有正在开发的项目也是用的Vue框架,有了一定程度的开发经验,现在有一点空闲时间,正好总结梳理一下Vue的一些学习笔记。第五篇,内容包括Vue的一些基础学习:Vue的计算属性和事件监听。
Vue的计算属性
计算属性本质
计算属性的缓存:计算属性只调用一次之后缓存起来,当this.firstName和this.lastName中有改变时,才再次调用然后缓存

<div id="app">
<p>{{ fullName }}</p>
<!-- setter&getter -->
<p>{{ fullName1 }}</p>
</div>
<script src="../common/js/vue.js"></script>
<script type="text/javascript">
const app = new Vue({
el: '#app',
data: {
firstName: '夏目',
lastName: '贵志',
},
computed: {// computed计算属性
// 计算属性单独调取get方法的简写
fullName: function () {
console.log('fullName');
return this.firstName + ' ' + this.lastName;
},
// setter&getter
// 计算属性一般没有set方法,只读属性
// 单独调取get方法,例如上fullName方法
fullName1: {
set: function (newValue) {
console.log('set', newValue);
const names = newValue.split(' ');
this.firstName = names[0];
this.lastName = names[1];
},
get: function () {
return this.firstName + ' ' + this.lastName;
}
}
},
});
</script>
计算属性和methods对比

<div id="app">
<p>{{ getFullName() }}</p>
<p>{{ getFullName() }}</p>
<p>{{ getFullName() }}</p>
<p>{{ getFullName() }}</p>
<p>{{ fullName }}</p>
<p>{{ fullName }}</p>
<p>{{ fullName }}</p>
<p>{{ fullName }}</p>
</div>
<script src="../common/js/vue.js"></script>
<script type="text/javascript">
const app = new Vue({
el: '#app',
data: {
firstName: '夏目',
lastName: '贵志',
},
// computed计算属性
computed: {
fullName: function () {
console.log('fullName');
return this.firstName + ' ' + this.lastName;
},
},
methods: {
getFullName: function () {
console.log('getFullName');
return this.firstName + ' ' + this.lastName;
}
},
});
</script>