【Uni-App】Vue3如何使用pinia状态管理库与持久化

安装插件

pinia-plugin-unistorage
在这里插入图片描述

引入

// main.js
import {
    createSSRApp } from "vue";
import * as Pinia from "pinia";
import {
    createUnistorage } from "pinia-plugin-unistorage";

export function createApp() {
   
  const app = createSSRApp(App);

  const store = Pinia.createPinia();

  // 关键代码 👇
  store.use(createUnistorage());

  app.use(store);

  return {
   
    app,
    Pinia, // 此处必须将 Pinia 返回
  };
}

初始化

根目录创建store文件夹,在该文件夹内添加pinia2.ts文件,内容如下:

import {
   
	defineStore
} from "pinia";

export const useStore = defineStore("pinia2", {
   
	state() {
   
		return {
   
			someState: "hello pinia",
			token: ''
		};
	},
	unistorage: true, // 开启后对 state 的数据读写都将持久化
	// unistorage: {
   
	// 	// 初始化恢复前触发
	// 	beforeRestore(ctx) {},
	// 	// 初始化恢复后触发
	// 	afterRestore(ctx) {},
	// 	serializer: {
   
	// 		// 序列化,默认为 JSON.stringify
	// 		serialize(v) {
   
	// 			return JSON.stringify(v);
	// 		},
	// 		// 反序列化,默认为 JSON.parse
	// 		deserialize(v) {
   
	// 			return JSON.parse(v);
	// 		},
	// 	},
	// 	key: "foo", // 缓存的键,默认为该 store 的 id,这里是 main,
	// 	paths: ["foo", "nested.data"], // 需要缓存的路径,这里设置 foo 和 nested 下的 data 会被缓存
	// }
});


// setup 语法也支持
// export const useStore = defineStore(
//   "main",
//   () => {
   
//     const someState = ref("hello pinia");
//     return { someState };
//   },
//   {
   
//     unistorage: true, // 开启后对 state 的数据读写都将持久化
//   },
// );

页面使用

<script>
	import {
   
		useStore
	} from '@/store/pinia2.ts'
	const pinia2 = useStore()
	export default {
   
		data() {
   
			return {
   
			}
		},
		methods: {
   
			startLogin() {
   
				console.log('count--------->1', pinia2.token);
				pinia2.token = '接口返回的token值'
				console.log('count--------->2', pinia2.token);
			},
		}
	}
</script>

参考资料

状态管理 Pinia
uni-app vue3如何使用pinia状态管理库

相关推荐

  1. Vue3Pinia状态管理学习笔记

    2024-01-30 17:54:03       41 阅读
  2. 【Vue3状态管理工具——pinia使用

    2024-01-30 17:54:03       71 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-30 17:54:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-30 17:54:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-30 17:54:03       82 阅读
  4. Python语言-面向对象

    2024-01-30 17:54:03       91 阅读

热门阅读

  1. 空间数据分析入门POI与莫兰指数基础知识笔记

    2024-01-30 17:54:03       67 阅读
  2. GBASE南大通用分享-mysql中的load data infile用法

    2024-01-30 17:54:03       50 阅读
  3. 低功耗蓝牙(BLE)服务的组成

    2024-01-30 17:54:03       59 阅读
  4. SVG 字体 – SVG 常用样式(17)

    2024-01-30 17:54:03       51 阅读
  5. 【AI】【GPT】如何用苹果Gift卡充值GPT Plug

    2024-01-30 17:54:03       61 阅读
  6. 面试经典 150 题 ---- 删除排序数组中的重复项 II

    2024-01-30 17:54:03       63 阅读
  7. 业务逐字稿

    2024-01-30 17:54:03       59 阅读
  8. mysql 各种常见的锁

    2024-01-30 17:54:03       43 阅读
  9. 防抖函数,节流函数

    2024-01-30 17:54:03       66 阅读