詳解vue頁面狀態(tài)持久化詳解
需求:左樹右表。組織樹選中某一節(jié)點(diǎn)后,進(jìn)入詳情頁面,再返回時(shí)需要保持選中。其他查詢條件也需要保持狀態(tài)。
思路:用vuex結(jié)合localStorage緩存數(shù)據(jù)。點(diǎn)擊樹節(jié)點(diǎn)或查詢按鈕時(shí),將數(shù)據(jù)保存在vuex中,同時(shí)存在localStorage中;頁面回退時(shí),將存在localStorage中的數(shù)據(jù)放到vuex中,在頁面代碼中判斷vuex中是否有我們存的數(shù)據(jù),有則直接用,沒有則默認(rèn)初始數(shù)據(jù)。當(dāng)頁面導(dǎo)航路由跳轉(zhuǎn)時(shí)再清除緩存的頁面數(shù)據(jù)。
代碼:
點(diǎn)擊某樹節(jié)點(diǎn)時(shí),存下id至vuex中。通過dispatch觸發(fā)action
this.$store.dispatch('SetDeviceFaultId', data.id)
?在vuex的actions中,通過commit?觸發(fā) mutations 中的方法
RemoveDeviceFaultId({ commit }) { //后面清除數(shù)據(jù)時(shí)會(huì)用到 commit('REMOVE_DEVICEFAULTID'); }, SetDeviceManageId({ commit }, id) { commit('SET_DEVICEMANAGEID', id); },
mutations
:修改數(shù)據(jù)
REMOVE_DEVICEFAULTID: (state) => { state.devicFaultId = null Storage.remove('devicFaultId'); }, SET_DEVICEMANAGEID: (state, deviceManageId) => { state.deviceManageId = deviceManageId Storage.set('deviceManageId', deviceManageId); }
state:頁面剛創(chuàng)建時(shí)從localStorage中拿緩存的數(shù)據(jù)
devicFaultId: Storage.get('devicFaultId'),
進(jìn)入某詳情頁,回退時(shí)
this.params.organizeId = this.$store.state.tree.devicFaultId ? this.$store.state.tree.devicFaultId : res.data[0].id;
點(diǎn)擊其他路由時(shí),記得清除緩存的數(shù)據(jù)
this.$store.dispatch('RemoveDeviceFaultId')
補(bǔ)充:
storage.js
代碼
?在vuex中引入后就可以通過Storage.set
使用啦
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
element中Steps步驟條和Tabs標(biāo)簽頁關(guān)聯(lián)的解決
這篇文章主要介紹了element中Steps步驟條和Tabs標(biāo)簽頁關(guān)聯(lián)的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12vue 實(shí)現(xiàn)通過手機(jī)發(fā)送短信驗(yàn)證碼注冊(cè)功能
這篇文章主要介紹了vue 實(shí)現(xiàn)通過手機(jī)發(fā)送短信驗(yàn)證碼注冊(cè)功能的相關(guān)資料,需要的朋友可以參考下2018-04-04VUE使用docxtemplater導(dǎo)出word文檔實(shí)例(帶圖片)
docxtemplate支持的功能很多,語法包含變量替換、條件判斷、循環(huán)、列表循環(huán)、表格循環(huán)等,下面這篇文章主要給大家介紹了關(guān)于VUE使用docxtemplater導(dǎo)出word功能(帶圖片)的相關(guān)資料,需要的朋友可以參考下2023-06-06Vue滾動(dòng)頁面到指定位置的實(shí)現(xiàn)及避坑
這篇文章主要介紹了Vue滾動(dòng)頁面到指定位置的實(shí)現(xiàn)及避坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09vue中elementUI表單循環(huán)驗(yàn)證方式
這篇文章主要介紹了vue中elementUI表單循環(huán)驗(yàn)證方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10vue項(xiàng)目開發(fā)中setTimeout等定時(shí)器的管理問題
這篇文章主要介紹了vue項(xiàng)目開發(fā)中setTimeout等定時(shí)器的管理問題,需要的朋友可以參考下2018-09-09