feat: pinia中使用pinia-plugin-persistedstate实现持久化存储

master
LCJ-MinYa 10 months ago
parent 347f59895a
commit 8655e74cb3

@ -42,6 +42,7 @@
"nprogress": "^0.2.0",
"path": "^0.12.7",
"pinia": "^2.2.2",
"pinia-plugin-persistedstate": "^4.2.0",
"pinyin-pro": "^3.24.2",
"qs": "^6.13.0",
"responsive-storage": "^2.2.0",

File diff suppressed because it is too large Load Diff

@ -1,6 +1,9 @@
import type { App } from "vue";
import { createPinia } from "pinia";
import type { App } from 'vue';
import { createPinia } from 'pinia';
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate';
const store = createPinia();
store.use(piniaPluginPersistedstate);
export function setupStore(app: App<Element>) {
app.use(store);

@ -0,0 +1,38 @@
import { defineStore } from 'pinia';
import { ref } from 'vue';
/**
* pinia使pinia-plugin-persistedstate
* https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/
* piniadefineStoretestsetup syntaxoption syntaxstore
*
* 使
* 1. pinia-plugin-persistedstatepnpm add pinia-plugin-persistedstate
* 2. store/index.tspinia-plugin-persistedstate
* import { createPersistedStatePlugin } from 'pinia-plugin-persistedstate';
* 3. 使
* const store = createPinia();
* store.use(piniaPluginPersistedstate);
* 4. store/modules/test.ts使defineStorestorepersistkeymy-teststoragewindow.sessionStorage
* 5. 使sessionStorageapp.vuewelcomedatacountpinia
*/
export default defineStore(
'test',
() => {
const count = ref(0);
const updateCount = () => {
count.value++;
};
return {
count,
updateCount,
};
},
{
persist: {
key: 'my-test',
// 使用sessionStorage存储数据默认为localStorage
storage: window.sessionStorage,
},
}
);

@ -1,4 +1,9 @@
<script setup lang="ts">
import useTestStore from '@/store/modules/test';
const testStore = useTestStore();
testStore.updateCount();
defineOptions({
name: 'Welcome',
});

Loading…
Cancel
Save