最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

問題描述:

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

解決方法:

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

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

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

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

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通過sessionStorage存儲起來然后賦值給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ù)

//一開始的問題函數(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)到登錄頁或首頁
}

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

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

總結(jié)

問題根因

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

解決方法

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

代碼示例

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

效果

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

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

相關(guān)文章

  • Vue2.x封裝預(yù)覽PDF組件實(shí)踐

    Vue2.x封裝預(yù)覽PDF組件實(shí)踐

    PDFObject是一個輕量級的JavaScript庫,用于在網(wǎng)頁中嵌入和預(yù)覽PDF文件,它通過簡單的API調(diào)用,可以在瀏覽器中實(shí)現(xiàn)PDF文件的顯示,而無需依賴任何插件,以下將詳細(xì)介紹PDFObject的特點(diǎn)、優(yōu)勢及其在Vue2.x中的使用方法
    2025-12-12
  • Vue實(shí)現(xiàn)側(cè)邊導(dǎo)航欄于Tab頁關(guān)聯(lián)的示例代碼

    Vue實(shí)現(xiàn)側(cè)邊導(dǎo)航欄于Tab頁關(guān)聯(lián)的示例代碼

    本文主要介紹了Vue實(shí)現(xiàn)側(cè)邊導(dǎo)航欄于Tab頁關(guān)聯(lián)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Vue監(jiān)聽Enter鍵的方法總結(jié)與區(qū)別

    Vue監(jiān)聽Enter鍵的方法總結(jié)與區(qū)別

    這篇文章主要給大家介紹了關(guān)于Vue監(jiān)聽Enter鍵的方法與區(qū)別的相關(guān)資料,在Vue中我們可以通過監(jiān)聽鍵盤事件來實(shí)現(xiàn)回車鍵切換焦點(diǎn)的功能,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • element step組件在另一側(cè)加時間軸顯示

    element step組件在另一側(cè)加時間軸顯示

    本文主要介紹了element step組件在另一側(cè)加時間軸顯示,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • vue傳值的編碼和解碼方式

    vue傳值的編碼和解碼方式

    這篇文章主要介紹了vue傳值的編碼和解碼方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue學(xué)習(xí)筆記之slot插槽用法實(shí)例分析

    vue學(xué)習(xí)筆記之slot插槽用法實(shí)例分析

    這篇文章主要介紹了vue學(xué)習(xí)筆記之slot插槽用法,結(jié)合實(shí)例形式對比分析了vue使用slot插槽的相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2020-02-02
  • Vue引入Stylus知識點(diǎn)總結(jié)

    Vue引入Stylus知識點(diǎn)總結(jié)

    在本篇文章里小編給各位整理的是一篇關(guān)于Vue引入Stylus知識點(diǎn)總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。
    2020-01-01
  • vue fetch中的.then()的正確使用方法

    vue fetch中的.then()的正確使用方法

    這篇文章主要介紹了vue fetch中的.then()的正確使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Vue基礎(chǔ)教程之條件渲染和列表渲染

    Vue基礎(chǔ)教程之條件渲染和列表渲染

    Vue會盡可能高效地渲染元素,通常會復(fù)用已有元素而不是從頭開始渲染。這么做會使Vue變得非???下面這篇文章主要給大家介紹了Vue基礎(chǔ)教程之條件渲染和列表渲染的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Vue.js刷新當(dāng)前頁面的常見方法

    Vue.js刷新當(dāng)前頁面的常見方法

    這篇文章主要介紹了Vue.js刷新當(dāng)前頁面的常見方法,文中通過代碼示例講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-12-12

最新評論

舞阳县| 贵阳市| 如皋市| 东山县| 荆门市| 深圳市| 安徽省| 农安县| 天柱县| 甘洛县| 吴旗县| 黄山市| 靖远县| 电白县| 四子王旗| 车险| 扎赉特旗| 湘潭县| 土默特左旗| 呼图壁县| 寿光市| 永丰县| 彰武县| 武鸣县| 延川县| 吕梁市| 青神县| 定结县| 日喀则市| 蒙山县| 建宁县| 义马市| 临泉县| 迭部县| 会泽县| 商洛市| 安阳市| 枞阳县| 凤凰县| 宝山区| 紫云|