国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

Vuex持久化插件(vuex-persistedstate)解決刷新數(shù)據(jù)消失的問(wèn)題

2024-05-06 15:40:38
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

頁(yè)面刷新后,想保存頁(yè)面未保存的數(shù)據(jù)。我們總是習(xí)慣于放在瀏覽器的sessionStorage和localStorage中。但是用了vue后,vuex便可以被應(yīng)用了。

vuex優(yōu)勢(shì):相比sessionStorage,存儲(chǔ)數(shù)據(jù)更安全,sessionStorage可以在控制臺(tái)被看到。

vuex劣勢(shì):在F5刷新頁(yè)面后,vuex會(huì)重新更新state,所以,存儲(chǔ)的數(shù)據(jù)會(huì)丟失。

vuex可以進(jìn)行全局的狀態(tài)管理,但刷新后刷新后數(shù)據(jù)會(huì)消失,這是我們不愿意看到的。怎么解決呢,我們可以結(jié)合本地存儲(chǔ)做到數(shù)據(jù)持久化,也可以通過(guò)插件-vuex-persistedstate。

1.手動(dòng)利用HTML5的本地存儲(chǔ)

方法

vuex的state在localStorage或sessionStorage或其它存儲(chǔ)方式中取值 在mutations,定義的方法里對(duì)vuex的狀態(tài)操作的同時(shí)對(duì)存儲(chǔ)也做對(duì)應(yīng)的操作。這樣state就會(huì)和存儲(chǔ)一起存在并且與vuex同步

問(wèn)題

最直觀的就是,手動(dòng)寫比較麻煩。

2.利用vuex-persistedstate插件

插件的原理其實(shí)也是結(jié)合了存儲(chǔ)方式,只是統(tǒng)一的配置就不需要手動(dòng)每次都寫存儲(chǔ)方法

使用方法

安裝

npm install vuex-persistedstate --save

引入及配置

在store下的index.js中

import createPersistedState from "vuex-persistedstate"const store = new Vuex.Store({ // ... plugins: [createPersistedState()]})

默認(rèn)存儲(chǔ)到localStorage

想要存儲(chǔ)到sessionStorage,配置如下

import createPersistedState from "vuex-persistedstate"const store = new Vuex.Store({ // ... plugins: [createPersistedState({  storage: window.sessionStorage })]})

想使用cookie同理

默認(rèn)持久化所有state

指定需要持久化的state,配置如下

import createPersistedState from "vuex-persistedstate"const store = new Vuex.Store({ // ... plugins: [createPersistedState({  storage: window.sessionStorage,  reducer(val) {   return {   // 只儲(chǔ)存state中的assessmentData   assessmentData: val.assessmentData  }  } })]

vuex引用多個(gè)插件的寫法

譬如:vuex提示的插件和持久化的插件一起使用,配置如下

import createPersistedState from "vuex-persistedstate"import createLogger from 'vuex/dist/logger'// 判斷環(huán)境 vuex提示生產(chǎn)環(huán)境中不使用const debug = process.env.NODE_ENV !== 'production'const createPersisted = createPersistedState({ storage: window.sessionStorage})export default new Vuex.Store({ // ... plugins: debug ? [createLogger(), createPersisted] : [createPersisted]})

plugins要是一個(gè)一維數(shù)組不然會(huì)解析錯(cuò)誤

API

createPersistedState([options])使用給定的選項(xiàng)創(chuàng)建插件的新實(shí)例??梢蕴峁┮韵逻x項(xiàng)來(lái)配置您的特定需求的插件:

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 西青区| 海兴县| 乃东县| 乌拉特后旗| 博湖县| 大邑县| 凤山市| 奉节县| 沭阳县| 会同县| 海南省| 岐山县| 安溪县| 青浦区| 醴陵市| 察雅县| 元阳县| 库尔勒市| 乌拉特后旗| 迁西县| 尚义县| 临桂县| 和林格尔县| 沽源县| 余姚市| 辰溪县| 林西县| 孙吴县| 腾冲县| 平泉县| 维西| 东丽区| 墨脱县| 太保市| 富锦市| 尼玛县| 同仁县| 侯马市| 井冈山市| 大城县| 屯留县|