方法:html
在控制檯中改變app7.message的值,方法就會執行vue
html:結構緩存
<div id="app7"> <p>{{message}}</p> <p>{{message__()}}</p> </div>
js:app
var app7=new Vue({ el:"#app7", data:{ message:"原來的信息" }, computed:{ message_:function(){ return Date.now() //沒有對其餘部分產生依賴 } }, methods:{ message__:function () { return Date.now() } } })
屬性:this
在控制檯中改變app7.message的值,計算屬性都不會變,不會再次執行,由於該計算屬性沒有對其餘東西產生依賴code
html結構:htm
<div id="app7"> <p>{{message}}</p> <p>{{message_}}</p> </div>
js:同上io
每次引發重繪(例如:app7.message的改變),方法message__都會執行;function
若是計算屬性沒有對其餘東西(例如app7.message)產生依賴,則會保持第一次結果,不會再次執行; 若是對其餘產生依賴,每當該依賴的東西發生變化,則該計算屬性就會再次執行一次方法
借鑑vue官網的話:計算屬性是基於它們的依賴進行緩存的
若是把js改爲:計算屬性對app7.message產生依賴,app7.message發生變化,則計算屬性則會再次執行
var app7=new Vue({ el:"#app7", data:{ message:"原來的信息" }, computed:{ message_:function(){ return this.message } }, methods:{ message__:function () { return Date.now() } } })