摘要:可以進(jìn)行全局的狀態(tài)管理,但刷新后刷新后數(shù)據(jù)會(huì)消失,這是我們不愿意看到的。怎么解決呢,我們可以結(jié)合本地存儲(chǔ)做到數(shù)據(jù)持久化,也可以通過插件。
vuex可以進(jìn)行全局的狀態(tài)管理,但刷新后刷新后數(shù)據(jù)會(huì)消失,這是我們不愿意看到的。怎么解決呢,我們可以結(jié)合本地存儲(chǔ)做到數(shù)據(jù)持久化,也可以通過插件-vuex-persistedstate。
歡迎來點(diǎn)點(diǎn)我的個(gè)人博客
方法
vuex的state在localStorage或sessionStorage或其它存儲(chǔ)方式中取值
在mutations,定義的方法里對(duì)vuex的狀態(tài)操作的同時(shí)對(duì)存儲(chǔ)也做對(duì)應(yīng)的操作。
這樣state就會(huì)和存儲(chǔ)一起存在并且與vuex同步
問題
最直觀的就是,手動(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
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ò)誤
點(diǎn)擊跳轉(zhuǎn)插件GITHUB地址
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/96513.html
摘要:眾所周知,的一個(gè)全局狀態(tài)管理的插件,但是在瀏覽器刷新的時(shí)候,內(nèi)存中的會(huì)釋放,通常的解決辦法就是用本地存儲(chǔ)的方式保存數(shù)據(jù),然后再初始化的時(shí)候再賦值給,手動(dòng)存再手動(dòng)取會(huì)覺得很麻煩,這個(gè)時(shí)候就可以使用的插件插件地址歡迎插件原理有一個(gè)方法每次在 眾所周知,vuex的一個(gè)全局狀態(tài)管理的插件,但是在瀏覽器刷新的時(shí)候,內(nèi)存中的state會(huì)釋放,通常的解決辦法就是用本地存儲(chǔ)的方式保存數(shù)據(jù),然后再vue...
摘要:接下來我們會(huì)從上述兩個(gè)功能點(diǎn)出發(fā),完成一個(gè)持久化插件。在我們的持久化插件中,就是在這個(gè)函數(shù)內(nèi)部對(duì)數(shù)據(jù)進(jìn)行持久化操作。而則整個(gè)被監(jiān)聽,所以任何對(duì)于的改動(dòng)都會(huì)被持久化并能夠被恢復(fù)。 在做 Vue 相關(guān)項(xiàng)目的時(shí)候,總會(huì)遇到因?yàn)轫撁嫠⑿聦?dǎo)致 Store 內(nèi)容丟失的情況。復(fù)雜的項(xiàng)目往往涉及大量的狀態(tài)需要管理,如果僅因?yàn)橐淮嗡⑿戮托枰恐匦芦@取,代價(jià)也未免太大了。 那么我們能不能對(duì)這些狀態(tài)進(jìn)行本...
摘要:先說點(diǎn)什么和路由攔截這一塊搗鼓的有一段時(shí)間了總算是爬出來了特地來分享一下首先聲明沒有什么基礎(chǔ)介紹用的是登錄狀態(tài)存儲(chǔ)的方法進(jìn)入正題刷新刷新相當(dāng)與重啟項(xiàng)目,之前獲取到的數(shù)據(jù)也只是通過暫存起來,項(xiàng)目關(guān)閉時(shí)就不見了,這有些像電腦重啟,存儲(chǔ)在的數(shù)據(jù)會(huì) 先說點(diǎn)什么 vuex和路由攔截這一塊搗鼓的有一段時(shí)間了,總算是爬出來了,特地來分享一下,首先聲明沒有什么基礎(chǔ)介紹,用的是登錄狀態(tài)存儲(chǔ)session...
摘要:同源策略同源策略是一種約定,由公司年引入瀏覽器,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,瀏覽器很容易受到等攻擊。 一、Vue變化檢測(cè) 背景 初始化對(duì)象,屬性未知;某些事件觸發(fā)時(shí),對(duì)象改變(新增屬性),Vue監(jiān)聽不到 原因 Vue.js 不能檢測(cè)到對(duì)象屬性的添加或刪除,因?yàn)閂ue.js 在初始化實(shí)例時(shí)將屬性轉(zhuǎn)為 getter/setter,所以屬性必須在 dat...
閱讀 3525·2023-04-26 00:16
閱讀 1361·2021-11-25 09:43
閱讀 3824·2021-11-23 09:51
閱讀 2964·2021-09-24 09:55
閱讀 713·2021-09-22 15:45
閱讀 1387·2021-07-30 15:30
閱讀 3064·2019-08-30 14:04
閱讀 2237·2019-08-26 13:46