1、computed
Vue的参数对象里面,会有一个computed属性,它的作用是:computed相当于属性的一个实时计算,如果实时计算里关联了对象,那么当对象的某个值改变的时候,同时会出发实时计算。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>vue学习</title>
<script type="text/javascript" src="https://unpkg.com/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<span>{{message}}</span>
<span>{{reverse}}</span>
</div>
<script>
var vm = new Vue({
el:"#app",
data:{
message:"12345"
},
computed:{
reverse: function () {
return this.message.split("").reverse().join("");
}
}
});
</script>
</body>
</html>
2、method
同样,利用定义方法的方式也能够达到计算属性的目的。
method和computed有什么区别呢?
method是只要发生了重新渲染,它总会执行method方法。但是computed是只要相应的响应式依赖没有发生变化,它不主动执行,哪怕界面已经刷新!!
computed更多的像是监听,而method是执行方法。
3、watch
在某种程度上和computed是一样的,都代表着监听,但是watch监听的是一项属性,而computed是只要它内部的依赖的响应式的属性发生改变,它就会发生改变。
如果仅仅想简单的理解一下,可以这么想,watch的监听太单一,computed正合适。
4、computed,该注意的地方。
一定要注意,computed监听的是响应式的属性数据,而非相应式的如同Date.now(),我们的需求可能是每次得到一个当前时间,而computed只会执行一次,这时候可能我们需要使用method更合适一些。