需求是,目前有一個數組是通過后端請求獲取數據項 然后mutation到vuex中,然后有個input框需要對數組項中的某個屬性名進行篩選,需要mutation成新的數組,但是input退格為空之后需要恢復到原來的vuex數組,并且篩選完成過程后,可能通過websocket推送會給原來的vuex數組push新的數據項,如果新推送的數據項不符合關鍵字也將被filter掉, 問下這要如何實現。。感覺有點難。 let that = this
if (this.channels) {
return this.channels.filter(function (channel, index) {
return channel.channelName.toLowerCase().indexOf(that.search.toLowerCase()) !== -1
})
} else {
return []
}原來沒用vuex之前是這樣的算法。。但是現在需要使用vuex了,因為業務多了
1 回答

慕勒3428872
TA貢獻1848條經驗 獲得超6個贊
我的思路是你的vuex
始終存儲后端返回的全量數據
,不要在這去做過濾
,當websocket
數據過來的時候就是直接在這個數組上push
數據了。接下來就是過濾邏輯了,這部分數據其實就是通過input
的值篩選vuex
中的數據的結果,所以你可以用一個computed
屬性,然后在模板中使用這個計算屬性:
computed: {
filteredChannel () {
let search = this.search.toLowerCase()
return (this.channels || []).filter(channel => channel.channelName.toLowerCase().indexOf(search) !== -1)
}
}
添加回答
舉報
0/150
提交
取消