詳解vuex持久化插件解決瀏覽器刷新數(shù)據(jù)消失問題
眾所周知,vuex的一個全局狀態(tài)管理的插件,但是在瀏覽器刷新的時候,內存中的state會釋放,通常的解決辦法就是用本地存儲的方式保存數(shù)據(jù),然后再vuex初始化的時候再賦值給state,手動存再手動取會覺得很麻煩,這個時候就可以使用vuex的插件vuex-solidification
插件地址: vuex-solidification , 歡迎star
插件原理
vuex有一個hook方法:store.subscribe((mutation, state) => {}) 每次在mutation方法執(zhí)行完之后都會調用這個回調函數(shù),返回執(zhí)行完畢之后的state
使用方法
安裝
npm install --save vuex-solidification
引入及配置
import Vue from 'vue' import Vuex from 'vuex' import count from './count/index.js'; import createPersistedState from 'vuex-solidification'; Vue.use(Vuex); const store = new Vuex.Store({ state: { count: { value: 0, num: 1 }, pos: 1 } plugins: [ // 默認存儲所有state數(shù)據(jù)到localstorage createPersistedState() ] });
插件參數(shù)說明
createPersistedState({options}) : Function
options里面可以有:
key: String 存儲到localStorage, sessionStorage 中對象的key,默認為vuex
local: Object 和 session: Object, 分別代表localStorage的配置和sessionStorage的配置
local 和 session 里面可以有: include: Array 和 exclude: Array
配置例子
createPersistedState({ local: { include: ['count.value'] } }) /* hook鉤子觸發(fā)之后,localstorage里面存儲的對象為: { count: { value: 0, } } */ createPersistedState({ local: { exclude: ['count.value'] } }) /* hook鉤子觸發(fā)之后,localstorage里面存儲的對象為: { count: { num: 1 }, pos: 1 } */ createPersistedState({ session: { include: ['count.value'] } }) /* hook鉤子觸發(fā)之后,sessionstorage里面存儲的對象為: { count: { value: 0, } } */ createPersistedState({ session: { exclude: ['count.value'] } }) /* hook鉤子觸發(fā)之后,sessionstorage里面存儲的對象為: { count: { num: 1 }, pos: 1 } */ createPersistedState({ session: { include: ['count'] }, local: { include: ['pos'] } }) /* hook鉤子觸發(fā)之后, sessionstorage里面存儲的對象為: { count: { value: 0, num: 1 }, } sessionstorage里面存儲的對象為: { pos: 0 } */
代碼例子
Check out the example on CodeSandbox.
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Vue的移動端多圖上傳插件vue-easy-uploader的示例代碼
這篇文章主要介紹了Vue的移動端多圖上傳插件vue-easy-uploader的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11使用vue-router在Vue頁面之間傳遞數(shù)據(jù)的方法
這篇文章主要介紹了使用vue-router在Vue頁面之間傳遞數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07element-ui+vue-treeselect下拉框的校驗過程
這篇文章主要介紹了element-ui+vue-treeselect下拉框的校驗過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07el-form-item?prop屬性動態(tài)綁定不生效問題及解決
這篇文章主要介紹了el-form-item?prop屬性動態(tài)綁定不生效問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07Vue.set()動態(tài)的新增與修改數(shù)據(jù),觸發(fā)視圖更新的方法
今天小編就為大家分享一篇Vue.set()動態(tài)的新增與修改數(shù)據(jù),觸發(fā)視圖更新的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09