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