Vue: 過濾器

在學(xué)習(xí) Vue 的過程中,總是會(huì)忘了有過濾器這回事,因?yàn)橐话惬@取了數(shù)據(jù)后就直接用函數(shù)去處理數(shù)據(jù)了,所以今天就來補(bǔ)一下過濾器的知識。其實(shí)在數(shù)據(jù)上添加過濾器會(huì)使得我們代碼更新優(yōu)美。

用法

只要使用管道符號就可以了。這里和命令行里的“管道”或者后端說的“中間件”的道理是一樣的,一個(gè)輸入一個(gè)輸出。

<span>{{ 數(shù)據(jù) | 過濾器}}</span>

自定義過濾器

Vue 允許你自定義自己的過濾器,下面用時(shí)間過濾器作為例子,假如現(xiàn)在有一個(gè) Date 對象,但是想用更好看的形式顯示出來。

data() {
    return {
        date: new Date()
    }
}

HTML 綁定 date。

<div id="root">
    {{date | formatDate}}
</div>

自定義過濾器可以提供里面的信息,然后拼湊出好看的形式。

filters: {
    formatDate(value, arg1, arg2) {
        let date = new Date(value)
        let year = date.getFullYear()
        let month = plusDate(date.getMonth() + 1)
        let day = plusDate(date.getDate())
        let hour = plusDate(date.getHours())
        let minute = plusDate(date.getMinutes())
        let second = plusDate(date.getSeconds())

        return `${year}-${month}-${day} ${hour}:${minute}:${second}`
    }
}

過濾器的參數(shù)

第一個(gè)參數(shù)是原始數(shù)據(jù),第二個(gè)參數(shù)對應(yīng)傳入的第一個(gè)參數(shù),然后以此類推。

<div id="root">
    {{date | formatDate(66, 99)}}
</div>

JS

filters: {
    formatDate(value, arg1, arg2) {
        console.log(value) // date
        console.log(arg1) // 66
        console.log(arg2) // 99
        ...
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容