computed和watch箕般,methods的區(qū)別
1.computed是計(jì)算屬性
它會(huì)根據(jù)所依賴的數(shù)據(jù)動(dòng)態(tài)顯示新的計(jì)算結(jié)果,計(jì)算的結(jié)果會(huì)被緩存起來舔清。
computed的值在getter被執(zhí)行之后會(huì)被緩存的丝里,如果依賴的數(shù)據(jù)發(fā)生變化曲初,getter就會(huì)發(fā)生變化
vm.reversedMsg依賴于vm.msg,vm.msg的值改變時(shí),vm.reversedMsg的值也會(huì)改變
computed應(yīng)用場(chǎng)景
1. 適用于一些重復(fù)使用數(shù)據(jù)或復(fù)雜及費(fèi)時(shí)的運(yùn)算杯聚。我們可以把它放入?computed?中進(jìn)行計(jì)算, 然后會(huì)在?computed?中緩存起來, 下次就可以直接獲取了臼婆。
2. 如果我們需要的數(shù)據(jù)依賴于其他的數(shù)據(jù)的話, 我們可以把該數(shù)據(jù)設(shè)計(jì)為?computed?中。
與methods的區(qū)別
3.同樣的我們采用methods也可以實(shí)現(xiàn)同樣的效果
與computed的區(qū)別
計(jì)算屬性是基于它們的響應(yīng)式依賴進(jìn)行緩存的幌绍。只在相關(guān)響應(yīng)式依賴發(fā)生改變時(shí)它們才會(huì)重新求值颁褂。這就意味著只要?message?還沒有發(fā)生改變,多次訪問?reversedMessage?計(jì)算屬性會(huì)立即返回之前的計(jì)算結(jié)果傀广,而不必再次執(zhí)行函數(shù)颁独。
與watch的區(qū)別
watch,偵聽數(shù)據(jù)data的變化伪冰,當(dāng)data數(shù)據(jù)發(fā)生變化的時(shí)候誓酒,執(zhí)行函數(shù),并傳入newVal和oldVal兩個(gè)參數(shù)贮聂。
我們引入一個(gè)例子
點(diǎn)擊?n+1? : 打印出?“n 變了”?
點(diǎn)擊?obj.a + 'hi'? : 打印出?“obj.a 變了”?靠柑,不打印?"obj 變了"?
不點(diǎn)擊?obj.a + 'hi'? , 點(diǎn)擊?obj = 新對(duì)象? : 打印出?"obj 變了"?,不打印?"obj 變了"?
說明watch的監(jiān)聽方式是:簡(jiǎn)單數(shù)據(jù)類型看值寂汇,復(fù)雜數(shù)據(jù)類型(對(duì)象)看地址