uni-app下vuex跨平台数据持久化

1,080 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

import getters from './getters'
import app from './modules/app.js'
import user from './modules/user.js'

import createPersistedState from 'vuex-persistedstate' // 持久化插件

// #ifndef VUE3
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
	plugins: [createPersistedState({ // 使用持久化插件
		paths: ['app'], // 持久化部分数据
		storage: {
			getItem: (key) => uni.getStorageSync(key),
			setItem: (key, value) => uni.setStorageSync(key, value),
			removeItem: (key) => uni.removeStorageSync(key)
		}
	})],
	modules: {
		app,
		user
	},
	getters
})
// #endif

// #ifdef VUE3
import {
	createStore
} from 'vuex'
const store = createStore({
	plugins: [createPersistedState({ // 使用持久化插件
		paths: ['app'], // 持久化部分数据
		storage: {
			getItem: (key) => uni.getStorageSync(key),
			setItem: (key, value) => uni.setStorageSync(key, value),
			removeItem: (key) => uni.removeStorageSync(key)
		}
	})],
	modules: {
		app,
		user
	},
	getters
})
// #endif


export default store