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

vuex刷新頁面后如何解決丟失store的數(shù)據(jù)問題

 更新時(shí)間:2022年12月01日 14:17:12   作者:harold1024  
這篇文章主要介紹了vuex刷新頁面后如何解決丟失store的數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vuex刷新頁面后丟失store的數(shù)據(jù)

提出問題

最近遇到個(gè)問題,vue中vuex中的store數(shù)據(jù),會(huì)在頁面刷新后初始化,為了解決這一問題決定將store里面數(shù)據(jù)在頁面刷新前保存到sessionStorage,至于為何用他,因?yàn)轫撁骊P(guān)閉后他會(huì)被清空,localStorage則會(huì)一直存在,cookie又太小,因此sessionStorage最合適。

解決方案

在app.vue的created方法中讀取sessionstorage中的數(shù)據(jù)存儲(chǔ)在store中,此時(shí)用vuex.store的replaceState方法,替換store的根狀態(tài)

在beforeunload方法中將store.state存儲(chǔ)到sessionstorage中。

export default {
? name: 'app',
? created () {
? ? // 在頁面加載時(shí)讀取sessionStorage
? ? if (sessionStorage.getItem('store')) {
? ? ? this.$store.replaceState(Object.assign({}, this.$store.state, JSON.parse(sessionStorage.getItem('store'))))
? ? }
? ? // 在頁面刷新時(shí)將store保存到sessionStorage里
? ? window.addEventListener('beforeunload', () => {
? ? ? sessionStorage.setItem('store', JSON.stringify(this.$store.state))
? ? })
? }
}

vuex刷新頁面數(shù)據(jù)丟失(數(shù)據(jù)持久化)

前提:

為什么要讓vuex數(shù)據(jù)持久化:

在使用vuex的時(shí)候,會(huì)發(fā)現(xiàn)刷新頁面之后state中存儲(chǔ)的數(shù)據(jù)會(huì)被重置,因?yàn)樗⑿聻g覽器的時(shí)候會(huì)導(dǎo)致整個(gè)頁面重新加載,vuex的state也會(huì)全部重新加載,所以為了防止這類情況的發(fā)生,我們會(huì)將vuex中的數(shù)據(jù)進(jìn)行本地存儲(chǔ),防止頁面刷新丟失vuex中的數(shù)據(jù)。

存儲(chǔ)到localStorage中

首先安裝vuex-persistedstate

npm install vuex-persistedstate -S

vuex-persistedstate默認(rèn)存儲(chǔ)到localStorage,使用如下:

 在store文件夾下面的index.js中引入

import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from "vuex-persistedstate"
Vue.use(Vuex)
const store = new Vuex.Store({
? ? plugins: [createPersistedState()],
})

存儲(chǔ)到sessionStorage中

使用vuex-persistedstate存儲(chǔ)到sessionStorage,如下:

import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from "vuex-persistedstate"
Vue.use(Vuex)
const store = new Vuex.Store({
? ? plugins: [createPersistedState({
? ? ? ? storage: window.sessionStorage
? ? })],
})

指定數(shù)據(jù)持久化

使用vuex-persistedstate指定需要持久化的state數(shù)據(jù),如下:

import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from "vuex-persistedstate"
Vue.use(Vuex)
const store = new Vuex.Store({
? ? plugins: [createPersistedState({
? ? ? ? storage: window.sessionStorage,
? ? ? ? // 方法1:用reducer,這里的val是由store里面的所有state,不加reducer為儲(chǔ)存所有,reducer為指定存儲(chǔ)
? ? ? ? reducer(val) ?{
? ? ? ? ? ? return {
? ? ? ? ? ? ? ? // 只儲(chǔ)存state中的name
? ? ? ? ? ? ? ? keyName: val.name
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? // 方法2:用paths,數(shù)組里面填模塊名,存儲(chǔ)指定模塊
? ? ? ? // paths: ['Home', 'Order']
? ? })]
})

總結(jié)

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

相關(guān)文章

  • Echarts+VUE柱狀圖繪制細(xì)節(jié)并且屏幕自適應(yīng)完整代碼

    Echarts+VUE柱狀圖繪制細(xì)節(jié)并且屏幕自適應(yīng)完整代碼

    柱狀圖(或稱條形圖)是一種通過柱形的長度來表現(xiàn)數(shù)據(jù)大小的一種常用圖表類型,這篇文章主要給大家介紹了關(guān)于Echarts+VUE柱狀圖繪制細(xì)節(jié)并且屏幕自適應(yīng)的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • Vue3優(yōu)雅的實(shí)現(xiàn)跨組件通信的常用方法總結(jié)

    Vue3優(yōu)雅的實(shí)現(xiàn)跨組件通信的常用方法總結(jié)

    開發(fā)中經(jīng)常會(huì)遇到跨組件通信的場景,props?逐層傳遞的方法實(shí)在是太不優(yōu)雅了,所以今天總結(jié)下可以更加簡單的跨組件通信的一些方法,文中通過代碼實(shí)例講解的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Vue3中自定義事件總線的實(shí)現(xiàn)代碼

    Vue3中自定義事件總線的實(shí)現(xiàn)代碼

    隨著 Vue 3 的發(fā)布,一些在 Vue 2 中常用的通信方式在 Vue 3 中可能不再適用或有所變化,為了應(yīng)對(duì)這種變化,我們可以選擇在 Vue 3 應(yīng)用中實(shí)現(xiàn)自定義的“事件總線”機(jī)制,所以本文給大家介紹了Vue3中如何自定義消息總線,需要的朋友可以參考下
    2024-05-05
  • Vue升級(jí)帶來的elementui沖突警告:Invalid prop: custom validator check failed for prop “type“.的解決方案

    Vue升級(jí)帶來的elementui沖突警告:Invalid prop: custom va

    在頁面渲染的時(shí)候,控制臺(tái)彈出大量警告,嚴(yán)重影響控制臺(tái)的信息獲取功能,但是頁面基本能正常顯示,這是因?yàn)閂ue升級(jí)帶來的elementui沖突警告: Invalid prop: custom validator check failed for prop “type“.的解決方案,本文給大家介紹了詳細(xì)的解決方案
    2025-04-04
  • Vue Router深扒實(shí)現(xiàn)原理

    Vue Router深扒實(shí)現(xiàn)原理

    在看這篇文章的幾點(diǎn)要求:需要你先知道Vue-Router是個(gè)什么東西,用來解決什么問題,以及它的基本使用。如果你還不懂的話,建議上官網(wǎng)了解下Vue-Router的基本使用后再回來看這篇文章
    2022-09-09
  • vue+Echart實(shí)現(xiàn)立體柱狀圖

    vue+Echart實(shí)現(xiàn)立體柱狀圖

    這篇文章主要為大家詳細(xì)介紹了vue+Echart實(shí)現(xiàn)立體柱狀圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue?模板循環(huán)繪制多行上傳文件功能實(shí)現(xiàn)

    vue?模板循環(huán)繪制多行上傳文件功能實(shí)現(xiàn)

    這篇文章主要為大家介紹了vue?模板循環(huán)繪制多行上傳文件功能實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • vue3采用xlsx庫實(shí)現(xiàn)本地上傳excel文件功能

    vue3采用xlsx庫實(shí)現(xiàn)本地上傳excel文件功能

    這篇文章主要為大家詳細(xì)介紹了vue3如何采用xlsx庫實(shí)現(xiàn)本地上傳excel文件功能,并且前端解析為Json數(shù)據(jù),感興趣的小伙伴可以了解一下
    2025-02-02
  • Vue中computed和watch有哪些區(qū)別

    Vue中computed和watch有哪些區(qū)別

    這篇文章主要介紹了Vue中computed和watch有哪些區(qū)別,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-12-12
  • element ui el-date-picker組件默認(rèn)值方式

    element ui el-date-picker組件默認(rèn)值方式

    這篇文章主要介紹了element ui el-date-picker組件默認(rèn)值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評(píng)論

灵寿县| 永顺县| 东丽区| 衡南县| 南开区| 泗阳县| 杨浦区| 巫溪县| 永德县| 朝阳县| 泽州县| 融水| 呼和浩特市| 阿坝县| 洞口县| 金昌市| 吉安县| 衡阳县| 永泰县| 通山县| 新昌县| 积石山| 元谋县| 永胜县| 阜新市| 昂仁县| 鄂尔多斯市| 珠海市| 香河县| 靖江市| 琼中| 尤溪县| 平阳县| 韶山市| 望江县| 页游| 高清| 丰原市| 赤壁市| 建阳市| 德兴市|