Pinia-构建用户仓库和持久化插件

文章目录


一、pinia是什么?

Pina 是一个用于 Vue.js 的插件,它提供了一个简单的方法来管理和共享 Vuex 或 Pinia(Vuex 的下一代状态管理库)中的 store。虽然 Vuex 仍然是 Vue.js 状态管理的一个流行选择,但 Pinia 提供了一个更轻量级、模块化和类型安全的替代方案。

二、安装 Pinia

首先,你需要安装 Pinia。你可以使用 npm 或 yarn 来安装它:

c 复制代码
pnpm install pinia
# 或者
yarn add pinia

另外我们还要安装一个pinia的持久化插件

c 复制代码
pnpm add pinia-plugin-persistedstate -D

1.拆分模块文件夹

这样是为了以后方便维护

2.配置store信息

这里只是一个小模块,我们还要注册到主文件index.ts中做统一管理

c 复制代码
import { defineStore } from 'pinia'
import { ref } from 'vue'

export interface UserInfo {
  id: number
  username: string
  password: string
  email: string
  phone: string
  avatar: string
  createTime: string
  updateTime: string
}
export const userStore = defineStore('user', () => {
  // 定义数据
  const userInfo = ref<UserInfo>()
  const token = ref<string>('')

  // 定义方法
  const setToken = (val: string) => {
    token.value = val
  }

  // 导出
  return {
    userInfo,
    token,
    setToken,
  }
})

3.主入口文件的统一导出

c 复制代码
import { createPinia } from 'pinia'
import persist from 'pinia-plugin-persistedstate'

// 创建 pinia 实例
const pinia = createPinia()
// 使用持久化存储插件
pinia.use(persist)

// 默认导出,给 main.ts 使用
export default pinia

// 模块统一导出
export * from './modules/member'
export * from './modules/user'

三、main.ts中注册

总结

Pinia 提供了比 Vuex 更简洁的 API,并且与 Vue 3 的 Composition API 更加契合。这使得在 Vue 3 应用中使用 Pinia 管理状态变得更加简单和直观。

相关推荐
ZC跨境爬虫2 分钟前
Apple官网复刻第二阶段day_6:(统一页脚模块封装+CSS公共复用体系落地)
前端·css·ui·重构·html
恋猫de小郭5 分钟前
Flutter 凉了没?Flutter 2026 的未来行程和规划,一些有趣的变化
android·前端·flutter
Beginner x_u7 分钟前
前端手动实现大文件分片上传调度层:分片计算、并发上传与断点续传
前端·状态模式·断点续传·大文件分片上传
胖纳特12 分钟前
Nextcloud 文件预览困局与破局:集成 BaseMetas Fileview 实现全格式在线预览
前端·后端
一个心烑12 分钟前
Layui结合springboot读取返回值,前端展示简单示例
前端·spring boot·layui
天天向上102412 分钟前
openlayers 加载Shapefile文件
前端·javascript·html
亿元程序员15 分钟前
手工拼豆有风险?手把手教你开发个电子版的
前端
阿Y加油吧17 分钟前
二刷 LeetCode:300. 最长递增子序列 & 152. 乘积最大子数组 复盘笔记
笔记·算法·leetcode
hhhhhh_we19 分钟前
再定义“皮肤人格”:从Baumann 16型分型到预颜美历的AI时序人格
前端·图像处理·人工智能·python·aigc
鹏程十八少20 分钟前
10. 2026金三银四 Android 组件化 & ARouter 面试杀手锏:33 道高频题 + 答案 + 流程图 + 源码,资深工程师必刷
前端·后端·面试