欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue?狀態(tài)存儲(chǔ)和會(huì)話存儲(chǔ)同步清空問(wèn)題解決方案(最新推薦)

 更新時(shí)間:2024年12月16日 14:33:15   作者:前端糕手  
文章介紹了在使用Pinia定義的useHeaderTabStore中,tab狀態(tài)通過(guò)會(huì)話存儲(chǔ)初始化但未在退出登錄時(shí)同步清空的問(wèn)題,通過(guò)在PiniaStore中定義清空tab的函數(shù),并在退出登錄時(shí)調(diào)用該函數(shù),可以確保狀態(tài)和會(huì)話存儲(chǔ)同步清空,避免內(nèi)存中殘留舊數(shù)據(jù),感興趣的朋友一起看看吧

問(wèn)題描述:

   在使用 Pinia 定義的 useHeaderTabStore中,tab狀態(tài)是通過(guò)會(huì)話存儲(chǔ)(sessionStorage)初始化的。然而在退出登錄時(shí),即使清空了會(huì)話存儲(chǔ)中的 tab數(shù)據(jù),重新登錄后頁(yè)面上的 tab數(shù)據(jù)仍然存在,這是因?yàn)?Pinia 狀態(tài)在內(nèi)存中仍然保留了之前的數(shù)據(jù),未重新獲取會(huì)話存儲(chǔ)的數(shù)據(jù)。

解決方法:

  • 在 Pinia Store 中定義一個(gè)清空 tab 的函數(shù)

    • 清空內(nèi)存中 tab的狀態(tài)變量。
    • 同時(shí)清空會(huì)話存儲(chǔ)中的 tab數(shù)據(jù)。
  • 在退出登錄函數(shù)中調(diào)用該清空函數(shù)

    • 這樣可以確保狀態(tài)和會(huì)話存儲(chǔ)同步清空

狀態(tài)存儲(chǔ)文件:

const useHeaderTabStore=defineStore('headerTab',{
state:():any=>({
tab:sessionStorage.getItem('tab')?JSON.parse(sessionStorage.getItem('tab')||'{}'): [],
currentTab:{}
}),
getters:{
  getTab():any[]{
return this.tab
  }
},
actions:{
//添加的清除tab的函數(shù)
clearTab(){
  this.tab=[]
  sessionStorage.removeItem('tab');
},
//把tab通過(guò)sessionStorage存儲(chǔ)起來(lái)然后賦值給tab變量
setTab(val:any){
    console.log(val,'headertab')
    this.currentTab=val
    const exists = this.tab.some((item:any) => item.path === val.path)
    if (!exists) {
      console.log('Adding new tab');
      this.tab.push(val);
      sessionStorage.setItem('tab',JSON.stringify(this.tab))
    } else {
      console.log('Tab already exists');
    }
  }
}
})
export default useHeaderTabStore

退出登錄函數(shù)

//一開(kāi)始的問(wèn)題函數(shù)
  function logout() {
  router.replace('/homePage');
 sessionStorage.removeItem('tab');
}
//修改成調(diào)用清除函數(shù)
function logout() {
  const headerTabStore = useHeaderTabStore(); // 引用 Pinia Store
  headerTabStore.clearTab(); // 調(diào)用清空函數(shù)
  router.replace('/homePage'); // 跳轉(zhuǎn)到登錄頁(yè)或首頁(yè)
}

此時(shí)再進(jìn)行登錄之后,tab數(shù)據(jù)任然存在頁(yè)面上沒(méi)有清空,但是瀏覽器存儲(chǔ)已經(jīng)被清空

此時(shí)可以想到狀態(tài)存儲(chǔ)的tab變量在登錄之后未重新獲取,而是保存之前的數(shù)據(jù)

總結(jié)

問(wèn)題根因

  • 狀態(tài)存儲(chǔ)(Pinia)和會(huì)話存儲(chǔ)(sessionStorage)未同步清空,導(dǎo)致 tab數(shù)據(jù)在內(nèi)存中仍然存在。

解決方法

  • 在 Pinia Store 中新增 clearTab 函數(shù),同時(shí)清空內(nèi)存狀態(tài)和會(huì)話存儲(chǔ)。
  • 在退出登錄時(shí)調(diào)用該清空函數(shù),確保狀態(tài)同步清空。

代碼示例

  • Pinia Store 定義清空函數(shù)。
  • 在退出登錄時(shí)調(diào)用clearTab ,同步狀態(tài)和存儲(chǔ)的清空操作。

效果

  • 每次退出登錄后,tab狀態(tài)和會(huì)話存儲(chǔ)中的數(shù)據(jù)都會(huì)完全清空,重新登錄后數(shù)據(jù)重新初始化。

到此這篇關(guān)于Vue 狀態(tài)存儲(chǔ)和會(huì)話存儲(chǔ)同步清空問(wèn)題解決方案的文章就介紹到這了,更多相關(guān)Vue 狀態(tài)存儲(chǔ)和會(huì)話存儲(chǔ)同步清空問(wèn)題解決方案內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue如何在style標(biāo)簽中使用變量(數(shù)據(jù))詳解

    vue如何在style標(biāo)簽中使用變量(數(shù)據(jù))詳解

    在我們編寫css樣式中是不能直接使用vue data中的變量的,下面這篇文章主要給大家介紹了關(guān)于vue如何在style標(biāo)簽中使用變量(數(shù)據(jù))的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • vue data有值,但是頁(yè)面{{}} 取不到值的解決

    vue data有值,但是頁(yè)面{{}} 取不到值的解決

    這篇文章主要介紹了vue data有值,但是頁(yè)面{{}} 取不到值的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • vue配置文件自動(dòng)生成路由和菜單實(shí)例代碼

    vue配置文件自動(dòng)生成路由和菜單實(shí)例代碼

    因?yàn)椴煌挠脩粲胁煌臋?quán)限,能訪問(wèn)的頁(yè)面是不一樣的,所以我們?cè)趯懞笈_(tái)管理系統(tǒng)時(shí)就會(huì)遇過(guò)這樣的需求:根據(jù)后臺(tái)數(shù)據(jù)動(dòng)態(tài)添加路由和菜單,這篇文章主要給大家介紹了關(guān)于vue配置文件自動(dòng)生成路由和菜單的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • Vue實(shí)現(xiàn)簡(jiǎn)易翻頁(yè)效果源碼分享

    Vue實(shí)現(xiàn)簡(jiǎn)易翻頁(yè)效果源碼分享

    本文給大家分享了vue實(shí)現(xiàn)簡(jiǎn)易翻頁(yè)效果,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-11-11
  • vue導(dǎo)出excel多層表頭的實(shí)現(xiàn)方案詳解

    vue導(dǎo)出excel多層表頭的實(shí)現(xiàn)方案詳解

    這篇文章主要為大家詳細(xì)介紹了vue導(dǎo)出excel多層表頭的實(shí)現(xiàn)方案,文中的示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04
  • ant-design-vue 快速避坑指南(推薦)

    ant-design-vue 快速避坑指南(推薦)

    ant-design-vue是螞蟻金服 Ant Design 官方唯一推薦的Vue版UI組件庫(kù),它其實(shí)是Ant Design的Vue實(shí)現(xiàn),組件的風(fēng)格與Ant Design保持同步,組件的html結(jié)構(gòu)和css樣式也保持一致,很多朋友在使用過(guò)程中遇到很多問(wèn)題,今天小編就給大家分享一篇教程幫助大家快速閉坑,一起看看吧
    2020-01-01
  • vue3中使用highlight.js實(shí)現(xiàn)代碼高亮顯示的代碼示例

    vue3中使用highlight.js實(shí)現(xiàn)代碼高亮顯示的代碼示例

    代碼高亮是在網(wǎng)頁(yè)開(kāi)發(fā)中常見(jiàn)的需求之一,它可以使代碼在頁(yè)面上以不同的顏色或樣式進(jìn)行突出顯示提高可讀性,這篇文章主要介紹了vue3中使用highlight.js實(shí)現(xiàn)代碼高亮顯示的相關(guān)資料,需要的朋友可以參考下
    2025-04-04
  • 詳解vue-cli 腳手架 安裝

    詳解vue-cli 腳手架 安裝

    這篇文章主要介紹了vue-cli腳手架安裝,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • ElementUI日期選擇器時(shí)間選擇范圍限制的實(shí)現(xiàn)

    ElementUI日期選擇器時(shí)間選擇范圍限制的實(shí)現(xiàn)

    在日常開(kāi)發(fā)中,我們會(huì)遇到一些情況,限制日期的范圍的選擇,本文就詳細(xì)的介紹了ElementUI日期選擇器時(shí)間選擇范圍限制的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),感興趣的可以了解一下
    2022-04-04
  • vue框架實(shí)現(xiàn)將側(cè)邊欄完全隱藏

    vue框架實(shí)現(xiàn)將側(cè)邊欄完全隱藏

    這篇文章主要介紹了vue框架實(shí)現(xiàn)將側(cè)邊欄完全隱藏,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評(píng)論