- 计算属性的主要特性是为了将不经常变化的计算结果进行缓存,节约系统的开销。等若于mybatis中的缓存一样。
- 它获取一次数据,将该数据存在缓存中,下次调用直接从缓存中获取,从下图可以看出currentTime2是没有发生改变的。
- 当调用this.message的时候,此时,数据刷新了发送了改变,currentTime2缓存中立刻重新计算结果。
- methods 和 computed 方法最好不要重名,methods的优先级高。
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>计算属性</title>
<!--导入vue.js -->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.min.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body>
<!--view层 模板 -->
<div id="app">
<p>currentTime1 {{currentTime1()}}</p>
<p>currentTime2 {{currentTime2}}</p>
</div>
<script type="text/javascript">
var vm = new Vue({
el: '#app',
data: {
message: "Hello Vue"
},
methods: {
currentTime1: function () { //在方法里面必须通过括号去调用
return Date.now(); //返回当前时间戳
}
},
computed: { //计算属性 methods computed 方法不能重名。methods优先级高
currentTime2: function () {
this.message; //当数据被刷新之后 重新计算
return Date.now(); //返回当前时间戳
}
}
})
</script>
</body>
</html>
https://www.bilibili.com/video/BV18E411a7mC/?p=10