1. 程式人生 > 其它 >Vue過濾器 filter

Vue過濾器 filter

Vue過濾器 filter
https://www.jianshu.com/p/ad21df1914c5

此筆記關於filter的官方文件的一些講解及個人的一些拓展

簡單介紹一下過濾器,顧名思義,過濾就是一個數據經過了這個過濾之後出來另一樣東西,可以是從中取得你想要的,或者給那個資料新增點什麼裝飾,那麼過濾器則是過濾的工具。例如,從['abc','abd','ade']陣列中取得包含‘ab’的值,那麼可通過過濾器篩選出來‘abc’和‘abd’;把‘Hello’變成‘Hello World’,那麼可用過濾器給值‘Hello’後面新增上‘ World’;或者把時間節點改為時間戳等等都可以使用過濾器。

首先,過濾器可在new Vue例項前註冊全域性的,也可以在元件上寫區域性。

全域性過濾器:

Vue.filter('globalFilter', function (value) {

  return value + "!!!"

})

元件過濾器(區域性):

filters:{

    componentFilter:function(value){

          return value + "!!!"

    }

  },

上面有種寫法有個需要注意的問題:全域性註冊時是filter,沒有s的。而元件過濾器是filters,是有s的,這要注意了,雖然你寫的時候沒有s不報錯,但是過濾器是沒有效果的

簡單介紹了一下過濾器的寫法,後面會結合用法有更詳細的講解,下面我們來講一下過濾器的使用方法。

用法有二:

一,在雙花括號插值

{{ 'ok' | globalFilter }}

二,在v-bind表示式中使用

<div v-bind:data="'ok' | globalFilter" ></div>

上面簡單介紹了一下過濾器的呼叫,那麼接下來我們講解一下過濾器的引數寫法

一、{{ message | filterA | filterB }}

上述程式碼中,message是作為引數傳給filterA 函式,而filterA 函式的返回值作為引數傳給filterB函式,最終結果顯示是由filterB返回的。

二、

{{ message | filterA('arg1', arg2) }}

上述程式碼中,filterA的第一個引數是message,依次是‘arg1’,arg2

三、 {{ 'a','b' | filterB }}

上述程式碼表示'a'和'b'分別作為引數傳給filterB

簡單的做了個筆記,小可愛們,有什麼不同看法和詳解可以留言~