Vue的.filter指令可以用來對數據進行過濾和轉換,讓我們更加方便地展示數據。.filter指令可以應用于兩個地方:在差值表達式{{}}或者v-bind表達式中。比如我們有一個數組,我們想要只展示其中一部分數據,或者我們想要對其中的一些數據進行轉換,這時候.filter指令就可以大顯身手了。
<div id="app">
<p>{{ message | reverse }}</p>
</div>
<script>
const app = new Vue({
el: '#app',
data: {
message: 'hello'
},
filters: {
reverse: function (value) {
return value.split('').reverse().join('')
}
}
})
</script>
以上代碼中的.filter指令展示了一個非常簡單的數據過濾器,我們可以將message字符串反轉過來,這樣就能夠得到"olleh"的結果。我們定義的filter函數接收一個參數value,代表了我們差值表達式中的數據。在這個例子中,value的值就是message。
我們也可以在v-bind表達式中使用.filter指令,比如我們希望將一個鏈接的url轉換成絕對路徑。我們可以使用.filter來完成這個操作。
<a v-bind:href="url | absolute">{{ url }}</a>
filters: {
absolute: function (value) {
return 'http://www.example.com/' + value
}
}
在這個例子中, 轉換后的鏈接地址將是"http://www.example.com/myurl"。
.filter指令和其他Vue指令一樣可以全局注冊或者組件內注冊,使用上十分自由靈活。無論在什么場合,.filter指令都能讓我們更加便捷地處理數據,提高開發效率。