Vue的filter是實現(xiàn)對標(biāo)簽內(nèi)文本數(shù)據(jù)進行格式化的一種手段。我們可以自己實現(xiàn)filter,或者使用已經(jīng)實現(xiàn)好的filter來對我們的文本進行格式化。
自定義filter可以非常簡單地實現(xiàn)。首先,在Vue實例中使用filters屬性添加一個key,value為一個函數(shù),這個函數(shù)就是我們要實現(xiàn)的filter。這個函數(shù)接收一個參數(shù),即要處理的文本數(shù)據(jù)。下面是一個例子:
Vue.filter('reverse', function(value) { return value.split('').reverse().join(''); })
上面的例子中,我們定義了一個名為reverse的filter。當(dāng)使用它的時候,會把傳入的文本數(shù)據(jù)反轉(zhuǎn)并返回。下面是一個使用reverse filter的Vue組件的例子:
Vue.component('example', { data: function() { return { text: 'hello world' } }, template: '{{text | reverse}}' })
當(dāng)example組件渲染時,它會把反轉(zhuǎn)后的文本渲染到頁面上。
除了自定義filter,Vue還提供了一些內(nèi)置的filter,可以直接使用。比如currency filter可以把數(shù)字格式化成貨幣的格式,date filter可以把日期格式化成指定的字符串格式。下面是一個使用currency filter的Vue組件的例子:
Vue.component('example', { data: function() { return { price: 1000 } }, template: '商品價格:{{price | currency("¥")}}' })
當(dāng)example組件渲染時,它會把1000渲染成¥1,000.00。