1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import store from './index.js' // 引入 Vuex store
- const whiteList = ['tokenID'] // 持久化存储白名单
- /**
- * 存储store缓存(持久化)
- */
- const saveLifeData = (key, value) => {
- uni.setStorageSync(key, value)
- }
- /**
- * 获取store缓存(持久化)
- * * @property {String|Array|NULL} key 对应key
- */
- const getLifeData = (key) => {
- let $uStoreKey = [];
- if(key&&typeof key === 'string') {
- $uStoreKey = [key]
- }else if(key&&typeof Array.isArray(key)) {
- $uStoreKey = key
- } else {
- try {
- $uStoreKey = store.state ? Object.keys(store.state) : [];
- } catch (e) {}
- }
- // 在应用初始化时检查本地存储并同步更新到 Vuex 的状态中
- $uStoreKey.some(keyName => {
- const savedState = uni.getStorageSync(keyName);
- if (savedState) {
- store.commit('$uStore', {
- name: keyName,
- value: savedState
- });
- }
- })
- if(key&&typeof key === 'string') {
- return store?.state?.[key] || ''
- }
- }
- /**
- * 清空store缓存(持久化)
- */
- const removeLifeData = () => {
- let $uStoreKey = [];
- try {
- $uStoreKey = store.state ? Object.keys(store.state) : [];
- } catch (e) {}
- $uStoreKey.some(keyName => {
- const foundKey = whiteList.find(key => key === keyName);
- !foundKey?uni.removeStorageSync(keyName):''
- })
- }
- export {
- saveLifeData,
- getLifeData,
- removeLifeData
- }
|