vuex 联动 sessionStorage 对数据持续存储


vuex 联动 sessionStorage 对数据进行持续存储,防止用户手动刷新页面导致vuex数据丢失,页面出错问题

1. 该方法利用vuex的plugins属性实现,直接放代码,( sessionStorage.setItem 可以把数据加密下,取值的时候也需要解密)

 1 const sessionStoragePlugin = store => {
 2   store.subscribe((mutation, state) => {
 3     Object.keys(state).forEach((item, index) => {
 4       //  sessionStorage.setItem 可以把数据加密下,取值的时候也需要解密
 5       window.sessionStorage.setItem(item, JSON.stringify(state[item]))
 6     })
 7   })
 8 }
 9 
10 export default sessionStoragePlugin

2. 状态初始化

 1 let vuxdata = null
 2 try {
 3   // 如果session加密了这里取值需要解密
 4   vuxdata = JSON.parse(sessionStorage.getItem('vuxdata')) || {}
 5 } catch (error) {
 6   vuxdata = {}
 7 }
 8 const state = {
 9   one: vuxdata.one || null
10 }
11 
12 export default {
13   state,
14 }

 

3. 将上面暴露出去的东西放在vuex 的plugin 里面就好了

 1 import Vue from 'vue'
 2 
 3 import Vuex from 'vuex'
 4 
 5 import sessionStoragePlugin from './sessionStoragePlugin'
 6 
 7 import vuexdata from './vuexdata.js'
 8 
 9 Vue.use(Vuex)
10 
11 export default new Vuex.Store({
12   modules: {
13     vuexdata,
14   },
15   // strict: process.env.NODE_ENV !== 'production',
16   plugins: [sessionStoragePlugin]
17 })

 

 

 以上


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM