Vue.js的methods vs. computed vs. watch

上篇無聊的內容來自這篇的文章們中的範例,
所以這篇彌補一下:

簡言之,method和computed差別在於computed有cache,因為computed會因其依賴的值有變動時才會重新呼叫function。
所以要小心當在computed中寫Date.now()時,因為無依賴任何值,所以不會重新呼叫,

如果要時時取得最新的Date.now()有兩種solution:
1. 在script範圍內寫:(只發生在JS內部訪問時,data綁定還是依賴驅動的)
computed: {
    now: function() {
        cache: false,
        return Date.now()
    }
}

2. 因為方法1在template中寫({{ now }})是無效的,因為DOM只會在反應式依賴變動才更新。所以寫在method才能防止cache。


上述說得不夠清楚?不知道在寫啥?或是不知道什麼叫「反應式依賴」?
==> 可看下面兩個不錯的連結:
https://012-cn.vuejs.org/guide/computed.html
https://www.jianshu.com/p/1be3ef82a55b (含「反應式依賴」意思)



其他差別在連結中:
https://blog.csdn.net/wzj2584454/article/details/79219409
https://blog.csdn.net/wkl305268748/article/details/77615863


一開始弄不懂watch和$watch差別,google半天,才從側面了解原來watch是用來寫function內容的 ;而$watch是用來呼叫watch的,從以下連結推論得證:
https://www.w3cplus.com/vue/vue-watch.html




留言

熱門文章