滄海一幻覺
2018-11-20 19:11:38
我看官方文檔上說:computed和methods的區別是,computed會基于它們的依賴進行緩存,如果數據沒法改變則computed刷新時不會重新執行,而methods則會每次執行。but我寫的例子并不是這樣(寫的是官方的例子)。html:<div id="app"> <div>{{methodsNow()}}</div> <div>{{computedNow}}</div></div>javascript:new Vue({ el:'#app', data:{ }, methods:{ methodsNow:function(){ return new Date().toLocaleString(); } }, computed:{ computedNow:function(){ return new Date().toLocaleString(); } }});大家來探討一下,我是不是哪里寫錯了?
2 回答

白豬掌柜的
TA貢獻1893條經驗 獲得超10個贊
你的例子對于描述二者不同這點上,沒有幫助。給你看這個例子:JSFiddle
<div id="app">
? <!-- 每次點擊時,顯示的時間都不同 -->
? <button @click="showMethod">methodsNow</button>
? <!-- 每次點擊時,顯示的時間都相同 -->
? <button @click="showComputed">computedNow</button>
</div>
new Vue({
? el: '#app',
? data: {
? ? message: 'Hello Vue.js!'
? },
? methods:{
? ? methodsNow: function(){
? ? ? return new Date().toLocaleString();
? ? },
? ? showMethod: function() {
? ? ? ? ?alert(this.methodsNow());
? ? },
? ? showComputed: function() {
? ? ? ? ?alert(this.computedNow);
? ? }
? },
? computed:{
? ? computedNow: function(){
? ? ? return new Date().toLocaleString();
? ? }
? }
})
添加回答
舉報
0/150
提交
取消