Vue中filter與computed的區(qū)別與用法解析-創(chuàng)新互聯(lián)

watch與computed、filter:

創(chuàng)新互聯(lián)建站專(zhuān)業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專(zhuān)業(yè)提供成都服務(wù)器托管,服務(wù)器租用,綿陽(yáng)服務(wù)器托管,綿陽(yáng)服務(wù)器托管,成都多線服務(wù)器托管等服務(wù)器托管服務(wù)。

watch:監(jiān)控已有屬性,一旦屬性發(fā)生了改變就去自動(dòng)調(diào)用對(duì)應(yīng)的方法

computed:監(jiān)控已有的屬性,一旦屬性的依賴(lài)發(fā)生了改變,就去自動(dòng)調(diào)用對(duì)應(yīng)的方法

filter:js中為我們提供的一個(gè)方法,用來(lái)幫助我們對(duì)數(shù)據(jù)進(jìn)行篩選

watch與computed的區(qū)別:

1.watch監(jiān)控現(xiàn)有的屬性,computed通過(guò)現(xiàn)有的屬性計(jì)算出一個(gè)新的屬性

2.watch不會(huì)緩存數(shù)據(jù),每次打開(kāi)頁(yè)面都會(huì)重新加載一次,

但是computed如果之前進(jìn)行過(guò)計(jì)算他會(huì)將計(jì)算的結(jié)果緩存,如果再次請(qǐng)求會(huì)從緩存中
得到數(shù)據(jù)(所以computed的性能比watch更好一些)

最近遇到一個(gè)很不錯(cuò)的候選人,經(jīng)驗(yàn)豐富,有技術(shù)亮點(diǎn),但在一些細(xì)枝末節(jié)問(wèn)題上沒(méi)有回答的很好,最終還是被刷了。面試過(guò)程中有一個(gè)問(wèn)題我印象特別深刻: Vue 中filter與computed屬性的區(qū)別 ,可惜候選人在現(xiàn)場(chǎng)沒(méi)有回答上,這里總結(jié)一下:

filter 與 computed 的區(qū)別

1. 觸發(fā)時(shí)機(jī)不同

computed 屬性背后的處理邏輯比較復(fù)雜,依賴(lài) Vue 的數(shù)據(jù)更新通知機(jī)制,在屬性所依賴(lài)的其他數(shù)據(jù)項(xiàng)發(fā)生變化時(shí)才會(huì)重新觸發(fā)計(jì)算。優(yōu)點(diǎn)是計(jì)算頻率相對(duì)較低;缺點(diǎn)是依賴(lài)于組件,難以抽取成獨(dú)立邏輯,也就是復(fù)用性低。

filter 則顯的簡(jiǎn)單很多,只在顯式調(diào)用時(shí)觸發(fā),一般應(yīng)用在模板渲染上。優(yōu)點(diǎn)是容易在組件外抽象;缺點(diǎn)是每次模板渲染時(shí)都需要重新執(zhí)行計(jì)算??梢酝ㄟ^(guò)示例 感受調(diào)用時(shí)機(jī)的區(qū)別:

2. 應(yīng)用范圍不同

computed 很廣泛,可以應(yīng)用在其他computed、methods、生命周期函數(shù)、模板;filter 一般只應(yīng)用于模板渲染上,如果要在其他位置復(fù)用,需要使用 this._f 函數(shù):

Vue.component('HelloWorld', {
 filters: {
 hello() {
 return 'hello';
 }
 },
 methods: {
 ping() {
 return `${this._f('hello')()} world`;
 }
 }
})

新聞名稱(chēng):Vue中filter與computed的區(qū)別與用法解析-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://bm7419.com/article20/gegjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司網(wǎng)頁(yè)設(shè)計(jì)公司、靜態(tài)網(wǎng)站、App開(kāi)發(fā)ChatGPT、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)