Vue.js的filter是一種十分有用的工具,它可以被用于格式化文本,過濾數(shù)據(jù),或者優(yōu)化界面展示。它在vue的template語法中使用豎線(|)進(jìn)行調(diào)用,可以很方便地完成各種操作。
在vue.js的安裝過程中,我們會(huì)自動(dòng)安裝一個(gè)名為Vue.filter(name, filter)的API函數(shù),它用于定義一個(gè)名為name的全局過濾器。在控制臺(tái)中輸入:Vue.filter('filterName',function(value){}),即可創(chuàng)建一個(gè)名為filterName的過濾器。
Vue.filter('time', function(value) { var date = new Date(value * 1000); var year = date.getFullYear(), month = date.getMonth() + 1, day = date.getDate(), hour = date.getHours(), minute = date.getMinutes(), second = date.getSeconds(); if (month< 10) { month = '0' + month } if (day< 10) { day = '0' + day } if (hour< 10) { hour = '0' + hour } if (minute< 10) { minute = '0' + minute } if (second< 10) { second = '0' + second } return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second; });
以上的代碼創(chuàng)建了一個(gè)名為“time”的過濾器,它可以將Unix時(shí)間戳格式化為易讀的日期和時(shí)間。在模板中使用這個(gè)過濾器非常簡單:
{{ timestamp | time }}
當(dāng)我們輸入一個(gè)Unix時(shí)間戳?xí)r,它將會(huì)自動(dòng)被過濾器轉(zhuǎn)換為格式化后的日期和時(shí)間。Filters亦可以接受任意數(shù)量的參數(shù):
Vue.filter('info', function(value, arg1, arg2) { // some logic here... return result; });{{ data | info('arg1', 'arg2') }}
以上是關(guān)于Vue.js中filter的一些基本用法,通過靈活應(yīng)用filter,我們可以很好地定制我們想要呈現(xiàn)的數(shù)據(jù)格式,提高數(shù)據(jù)的可讀性,也增加了我們代碼的可擴(kuò)展性。