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()輸入框中值發生改變,才會執行