Vue的filterBy過濾器可以用來在數組中按照指定條件過濾元素。它非常適用于處理在用戶界面中展示數據的場景,例如表格、下拉框等。下面我們來看一個簡單的示例。
//HTML <div id="app"> <input v-model="keyword"> <ul> <li v-for="item in filteredList">{{item}}</ul> </div> //JS new Vue({ el: '#app', data: { list: ['apple', 'banana', 'pear', 'orange'], keyword: '' }, computed: { filteredList: function(){ return this.$options.filters.filterBy(this.list, this.keyword); } } })
上述代碼會在網頁中顯示一個輸入框,當用戶在輸入框中輸入關鍵字時,數組中所有不包含該關鍵字的元素會被過濾掉,只有包含該關鍵字的元素會被顯示出來。
在上述代碼中,我們在computed屬性中定義了一個名為filteredList的計算屬性,它的值是過濾后的數組。在這個計算屬性中,我們通過調用Vue的filterBy過濾器的方式對數組進行了過濾。
filterBy方法的第一個參數是待過濾的數組,第二個參數是過濾的關鍵字。在上述代碼中,我們將待過濾的數組傳入了filterBy方法中,并使用Vue實例中的keyword屬性作為關鍵字。filterBy方法會遍歷數組中的每一個元素,將含有關鍵字的元素篩選出來并返回新的數組。