溫馨提示×

vue怎么實現多條件篩選功能

vue
小億
573
2023-08-04 00:00:35
欄目: 編程語言

在Vue中實現多條件篩選功能可以使用computed屬性和watch屬性來實現。

首先,創建一個Vue實例,并在data中定義篩選條件的數據。

new Vue({
el: '#app',
data: {
items: [], // 原始數據
filters: {
type: '',
price: '',
color: ''
}
},
computed: {
filteredItems: function() {
// 使用computed屬性過濾數據
return this.items.filter(item => {
// 判斷每個數據項是否滿足篩選條件
return (
(!this.filters.type || item.type === this.filters.type) &&
(!this.filters.price || item.price === this.filters.price) &&
(!this.filters.color || item.color === this.filters.color)
);
});
}
},
watch: {
filters: {
handler: function() {
// 使用watch屬性監聽篩選條件的變化
console.log(this.filteredItems);
},
deep: true
}
}
});

然后,在模板中定義篩選條件的輸入框,并綁定到對應的數據。

<div id="app">
<select v-model="filters.type">
<option value="">All</option>
<option value="A">Type A</option>
<option value="B">Type B</option>
<option value="C">Type C</option>
</select>
<select v-model="filters.price">
<option value="">All</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<select v-model="filters.color">
<option value="">All</option>
<option value="red">Red</option>
<option value="green">Green</option>
<option value="blue">Blue</option>
</select>
</div>

當篩選條件發生變化時,watch屬性會監聽到變化,并觸發handler函數,從而更新篩選后的數據。你可以在handler函數中做相應的操作,比如將篩選結果渲染到頁面上。

以上代碼僅作為示例,具體的多條件篩選功能的實現方式會根據你的實際需求而有所不同。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女