? 新寫的一個項目,使用后發現,點“詳細”跳轉到詳情頁面。返回時,原來的篩條件沒了,又把全部的數據都查詢出來,還需要重新篩選一下,使用起來很不友好。
? ??
解決辦法:瀏覽器本地存儲(LocalStorage 或 SessionStorage)處理多個搜索條件
?初始頁面有一個篩選條件對象:?QInstrumentQuery:{}
?頁面跳轉前將這個對象存儲到本地存儲。因為只能存儲字符串,所以可以將多個搜索條件組合成一個 JSON 對象存儲。
data(){QInstrumentQuery:{},//篩選條件
}//詳情按鈕,跳轉到設備詳情頁,
view(id){//先存儲搜索條件到瀏覽器的本地存儲來,mounted鉤子中拿出localStorage.setItem('QInstrumentQuery', JSON.stringify(this.QInstrumentQuery));this.$router.push("/dashboard/instruments/query/"+id);},
當返回頁面時,從本地存儲中獲取并解析這些條件:
mounted() {//從瀏覽器本地緩存取出搜索條件let storedContent = localStorage.getItem('QInstrumentQuery');if (storedContent) {this.QInstrumentQuery = JSON.parse(storedContent);}else{this.QInstrumentQuery.state=0;//默認狀態選擇“啟用”}}