computed調用是屬性調用,不需要加括號,
methods是函數調用
<div id="app"> <input type="text"v-model.number="a"> <input type="text"v-model.number="b"> <p v-cloak>結果:{{handle()}}</p> <p v-cloak>結果:{{handleCom}}</p> </div>
<script src="vue.js"></script>
<script>
var vm = new Vue({
el:"#app",
data:{
a:"",
b:"",
sum:"",
},
methods:{
handle(){
return this.a+this.b;
}
},
computed:{
handleCom(){
return this.a+this.b;
}
}
})
</script>
如果handle()不加括號,
<p v-cloak>結果:{{handle()}}</p>
會在瀏覽器中打印
function () { [native code] }
如果handleCom加括號,則會報錯
TypeError: handleCom is not a function"
區別二:
computed是 當下次所依賴的函數沒有發生改變時,再次調用時,會從緩存中讀取數據
methods是
<script>
var vm = new Vue({
el:"#app",
data:{
a:"",
b:"",
sum:"",
},
methods:{
handle(){
console.log("handle()被調用了")
return this.a+this.b;
}
},
computed:{
handleCom(){
console.log("handleCom被調用了")
return this.a+this.b;
}
}
})
</script>

handle()只要光標移入console.log()就會被執行
handleCom()輸入框中值發生改變,才會執行
