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

nuxt中刷新頁面后防止store值丟失問題

 更新時間:2023年10月11日 09:55:40   作者:古墩古墩  
這篇文章主要介紹了nuxt中刷新頁面后防止store值丟失問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

nuxt刷新頁面后防止store值丟失

配置插件()

plugins: [
    {src:'~/plugins/storeCache',ssr: false},
  ],

注意:

要禁止服務(wù)端運行,不然會報錯,這個事件是在客戶端添加的,不是在服務(wù)端小渲染的時候添加的。

在plugins/storeCache.js

寫代碼,如下。

export default function(ctx){
    //離開頁面 刷新前 將store中的數(shù)據(jù)存到session
    window.addEventListener('beforeunload', ()=> {
        sessionStorage.setItem("storeCache",JSON.stringify(ctx.store.state))
    });
    //頁面加載完成  將session中的store數(shù)據(jù)
    window.addEventListener('load', ()=> {
        let storeCache = sessionStorage.getItem("storeCache")
        if(storeCache){
            // 將session中的store數(shù)據(jù)替換到store中
            ctx.store.replaceState(JSON.parse(storeCache));
        }
    });
}

大功告成~

nuxt——讓store持久化,刷新頁面不清除store

我們有時候在項目中儲存的store數(shù)據(jù)只要一刷新頁面,數(shù)據(jù)就被清空了,在其他頁面加載的時候就獲取不到數(shù)據(jù)了,但是咱們又沒有辦法控制用戶不允許刷新頁面,所以咱們來解決了它

解決思路

就是利用瀏覽器的本地存儲,localStorage或者sessionStorage,監(jiān)聽頁面要離開或者刷新前,將store儲存到本地,下次進入頁面的時候取出來重新賦值給store就可以了

代碼開發(fā)步驟

如下:

第一步:

我們在plugins文件中建立一個store-cache.js文件,在store-cache.js中添加以下代碼:

export default function(ctx) {
? //離開頁面 刷新前 將store中的數(shù)據(jù)存到localStorage
? window.addEventListener('beforeunload', () => {
? ? localStorage.setItem("storeCache", JSON.stringify(ctx.store.state))
? });
? // 獲取localStorage中的store數(shù)據(jù)
? let storeCache = localStorage.getItem("storeCache")
? if (storeCache) {
? ? // 將localStorage中的store數(shù)據(jù)替換到store中
? ? ctx.store.replaceState(JSON.parse(storeCache));
? }
}

第二步:

在nuxt.cofing.js中的plugins中將剛才創(chuàng)建的store-cache.js添加進去,如下:

plugins: [
?? ?{src:'~/plugins/store-cache',ssr:false}
],

注意:

在添加的時候ssr一定要設(shè)置成false,ssr的作用是控制該文件是否在服務(wù)器端進行加載,如果設(shè)置為true的話,這個js文件就會在服務(wù)器中直接運行了,但是因為我們的js文件中需要用到windows對象,windows對象只有在客戶端,也就是咱們的瀏覽器中才會存在,直接在服務(wù)器中運行的話,會報錯,因為找不到windows對象,所以我們需要設(shè)置為false,讓該js到了瀏覽器中后再加載運行

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue+elementUi中的table實現(xiàn)跨頁多選功能(示例詳解)

    vue+elementUi中的table實現(xiàn)跨頁多選功能(示例詳解)

    最近在開發(fā)工業(yè)品超市的后臺系統(tǒng),遇到一個需求,就是實現(xiàn)在一個table表格中多選數(shù)據(jù),在網(wǎng)上查了好多,有些方法真的是無語,下面通過本文給大家分享vue+elementUi中的table實現(xiàn)跨頁多選功能,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • Vue3.2+Ts組件之間通信的實現(xiàn)

    Vue3.2+Ts組件之間通信的實現(xiàn)

    本文主要介紹了Vue3.2+Ts組件之間通信的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • 快速解決vue動態(tài)綁定多個class的官方實例語法無效的問題

    快速解決vue動態(tài)綁定多個class的官方實例語法無效的問題

    今天小編就為大家分享一篇快速解決vue動態(tài)綁定多個class的官方實例語法無效的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • Vue.js中v-on指令的用法介紹

    Vue.js中v-on指令的用法介紹

    這篇文章介紹了Vue.js中v-on指令的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • VUE中如何調(diào)用高德地圖獲取當前位置(VUE2.0和3.0通用)

    VUE中如何調(diào)用高德地圖獲取當前位置(VUE2.0和3.0通用)

    使用uniapp開發(fā)微信小程序時,多多少少會遇到獲取當前位置的詳細信息,下面這篇文章主要給大家介紹了關(guān)于VUE中如何調(diào)用高德地圖獲取當前位置(VUE2.0和3.0通用)的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • 5分鐘學會Vue動畫效果(小結(jié))

    5分鐘學會Vue動畫效果(小結(jié))

    這篇文章主要介紹了5分鐘學會Vue動畫效果(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 詳解如何理解vue的key屬性

    詳解如何理解vue的key屬性

    這篇文章主要介紹了詳解如何理解vue的key屬性,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Vue.js實現(xiàn)表格渲染的方法

    Vue.js實現(xiàn)表格渲染的方法

    今天小編就為大家分享一篇對Vue.js實現(xiàn)表格渲染的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue前端如何向后端傳遞參數(shù)

    vue前端如何向后端傳遞參數(shù)

    這篇文章主要介紹了vue前端如何向后端傳遞參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • vue-cli3在main.js中console.log()會報錯的解決

    vue-cli3在main.js中console.log()會報錯的解決

    這篇文章主要介紹了vue-cli3在main.js中console.log()會報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04

最新評論