Vue中的computed計算屬性是一種強大的功能,我們可以用它來過濾數(shù)據(jù)。一個簡單應(yīng)用computed過濾器的例子如下:
<div id="app"> <p v-for="user in filteredUsers">{{ user.name }}</p> </div> <script> new Vue({ el: '#app', data: { users: [ { name: 'John', age: 27 }, { name: 'Jane', age: 23 }, { name: 'Bob', age: 31 } ] }, computed: { filteredUsers: function () { return this.users.filter(function (user) { return user.age >25 }) } } }) </script>
上例中我們使用computed屬性filteredUsers對users進行了過濾。filteredUsers實際上是一個新的數(shù)組,它只包含年齡大于25的用戶。
當(dāng)然,我們不僅僅可以通過年齡來過濾,我們還可以通過多個屬性來進行復(fù)雜的過濾。下面是一個更加復(fù)雜的例子:
<div id="app"> <p v-for="user in filteredUsers">{{ user.name }} ({{ user.age }}, {{ user.gender }})</p> </div> <script> new Vue({ el: '#app', data: { users: [ { name: 'John', age: 27, gender: 'male' }, { name: 'Jane', age: 23, gender: 'female' }, { name: 'Bob', age: 31, gender: 'male' } ], ageFilter: 25, genderFilter: 'male' }, computed: { filteredUsers: function () { var ageFilter = parseInt(this.ageFilter) return this.users.filter(function (user) { return user.age >= ageFilter && user.gender === this.genderFilter }.bind(this)) } } }) </script>
在上面的例子中,我們使用了一個ageFilter和genderFilter的data屬性來控制過濾條件,然后在computed屬性filteredUsers中使用這些屬性進行過濾。
總之,computed過濾器是一個非常有用的功能,可以幫助我們輕松地對數(shù)據(jù)進行過濾。