欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue 中 filter 與 computed 的區(qū)別與用法解析

 更新時間:2019年11月21日 09:25:01   作者:VanMess  
這篇文章主要介紹了Vue 中 filter 與 computed 的區(qū)別與用法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

watch與computed、filter:

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

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

filter:js中為我們提供的一個方法,用來幫助我們對數(shù)據(jù)進行篩選

watch與computed的區(qū)別:

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

2.watch不會緩存數(shù)據(jù),每次打開頁面都會重新加載一次,

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

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

filter 與 computed 的區(qū)別

1. 觸發(fā)時機不同

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

filter 則顯的簡單很多,只在顯式調(diào)用時觸發(fā),一般應(yīng)用在模板渲染上。優(yōu)點是容易在組件外抽象;缺點是每次模板渲染時都需要重新執(zhí)行計算。可以通過示例 感受調(diào)用時機的區(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`;
 }
 }
})

另外,在使用上filter支持鏈式調(diào)用,這為其增加了組合拼接的能力:

<span> {{ name | normalize | capitalize }} </span>

3. 定義方式

最后需要指出,computed 屬性只能在組件內(nèi)部或通過mixins對象定義;而 filter 有兩種定義方式,一是在組件內(nèi)部通過 filters 屬性定義;一是在組件外部通過 Vue.filter 函數(shù)定義:

Vue.component('HelloWorld', {
 filters: {
 hello() {
 return 'hello';
 }
 }
});
Vue.filter('hello', ()=> 'hello');

應(yīng)用規(guī)則

綜上,filter 無法緩存,調(diào)用頻率高,因此特別適用于格式化輸出場景,比如日期格式化。filter 具有組合調(diào)用能力,因此可以在項目架構(gòu)層面定義一堆基礎(chǔ)的、簡單的filter,按需在組件內(nèi)組合適用。

computed 屬性具有緩存能力,在組件內(nèi)普適性更強,因此適用于復(fù)雜的數(shù)據(jù)轉(zhuǎn)換、統(tǒng)計等場景。

總結(jié)

以上所述是小編給大家介紹的Vue 中 filter 與 computed 的區(qū)別與用法解析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • vue2.0安裝style/css loader的方法

    vue2.0安裝style/css loader的方法

    下面小編就為大家分享一篇vue2.0安裝style/css loader的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • vue自定義表格列的實現(xiàn)過程記錄

    vue自定義表格列的實現(xiàn)過程記錄

    這篇文章主要給大家介紹了關(guān)于vue自定義表格列的相關(guān)資料,表格組件在開發(fā)中經(jīng)常會用到,文章通過示例代碼介紹的也很詳細,需要的朋友可以參考下
    2021-06-06
  • 解決VUEX兼容IE上的報錯問題

    解決VUEX兼容IE上的報錯問題

    下面小編就為大家分享一篇解決VUEX兼容IE上的報錯問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • vue實現(xiàn)點擊按鈕切換背景顏色的示例代碼

    vue實現(xiàn)點擊按鈕切換背景顏色的示例代碼

    這篇文章主要介紹了用vue簡單的實現(xiàn)點擊按鈕切換背景顏色,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • vue使用計算屬性完成動態(tài)滑竿條制作

    vue使用計算屬性完成動態(tài)滑竿條制作

    這篇文章主要介紹了vue使用計算屬性完成動態(tài)滑竿條制作,文章圍繞計vue算屬制作動態(tài)滑竿條的相關(guān)代碼完成內(nèi)容,需要的朋友可以參考一下
    2021-12-12
  • 詳解vue 數(shù)據(jù)傳遞的方法

    詳解vue 數(shù)據(jù)傳遞的方法

    這篇文章給大家介紹了vue數(shù)據(jù)傳遞的方法,包括,父組件向子組件傳值 ,子組件向父組件傳值 ,路由傳值等多種方法,需要的朋友參考下
    2018-04-04
  • 在vite項目中使用@進行文件的引入方式

    在vite項目中使用@進行文件的引入方式

    這篇文章主要介紹了在vite項目中使用@進行文件的引入方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue Element前端應(yīng)用開發(fā)之組織機構(gòu)和角色管理

    Vue Element前端應(yīng)用開發(fā)之組織機構(gòu)和角色管理

    本篇文章繼續(xù)深化Vue Element權(quán)限管理模塊管理的內(nèi)容,介紹組織機構(gòu)和角色管理模塊的處理,使得我們了解界面組件化模塊的開發(fā)思路和做法,提高我們界面設(shè)計的技巧,并減少代碼的復(fù)雜性,提高界面代碼的可讀性,同時也是利用組件的復(fù)用管理。
    2021-05-05
  • vue-router 源碼之實現(xiàn)一個簡單的 vue-router

    vue-router 源碼之實現(xiàn)一個簡單的 vue-router

    這篇文章主要介紹了vue-router 源碼之實現(xiàn)一個簡單的 vue-router,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Vite的createServer啟動源碼解析

    Vite的createServer啟動源碼解析

    這篇文章主要為大家介紹了Vite的createServer啟動源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09

最新評論