首页 > 其他分享 >第二节:封装pinia和持久化

第二节:封装pinia和持久化

时间:2024-08-30 23:22:33浏览次数:11  
标签:封装 仓库 persist stores js pinia import 第二节

封装pinia

构建用户仓库 和 持久化

通过持久化,可以实现应用程序重新启动时恢复这些状态

官方文档:https://prazdevs.github.io/pinia-plugin-persistedstate/zh/

  1. 安装插件 pinia-plugin-persistedstate
pnpm add pinia-plugin-persistedstate -D
  1. 使用 main.js(之后统一管理,这部分不用操作)
import persist from 'pinia-plugin-persistedstate'
...
app.use(createPinia().use(persist))
//到这里是配置好持久化
  1. 配置 stores/user.js(之后编写的接口如这里所示
import { defineStore } from 'pinia'
import { ref } from 'vue'

// 用户模块
export const useUserStore = defineStore(
  'big-user',
  () => {
    const token = ref('') // 定义 token
    const setToken = (t) => (token.value = t) // 设置 token

    return { token, setToken }
  },
  {
    persist: true // 持久化
  }
)
//这里引入持久化 persist: true // 持久化

Pinia - 配置仓库统一管理

pinia 独立维护

- 现在:初始化代码在 main.js 中,仓库代码在 stores 中,代码分散职能不单一

- 优化:由 stores 统一维护,在 stores/index.js 中完成 pinia 初始化,交付 main.js 使用

仓库 统一导出

- 现在:使用一个仓库 import { useUserStore } from ./stores/user.js 不同仓库路径不一致

- 优化:由 stores/index.js 统一导出,导入路径统一 ./stores,而且仓库维护在 stores/modules 中

//  sotre/index.js
import { createPinia } from 'pinia' 
import persist from 'pinia-plugin-persistedstate'

const pinia = createPinia()
pinia.use(persist)

export default pinia
export * from './modules/test'  //这根据具体模块
import pinia from '@/stores'    //main.ts
app.use(pinia)

将main.ts种所有和pinia相关的代码移动至stores/index.ts

仓库统一 stores/modules

配置好后创建流程:

  1. stores/modules新建文件编写类似于user.js内容;
  2. 在stores/index中export * from './modules/test' //这根据具体模块

标签:封装,仓库,persist,stores,js,pinia,import,第二节
From: https://blog.csdn.net/everfoot/article/details/141729077

相关文章

  • sqlsugar 封装 单例模式 多数据库 泛型
    PlayGround\.config\dotnet-tools.json{"version":1,"isRoot":true,"tools":{"csharpier":{"version":"0.29.1","commands":["dotnet-csharpier......
  • Pinia入门(快速上手)
    定义一个Store 在深入了解核心概念之前,我们需要知道Store是使用 defineStore() 定义的,并且它需要一个唯一名称,作为第一个参数传递:import{defineStore}from'pinia'//useStore可以是useUser、useCart之类的任何东西//第一个参数是应用程序中store的唯一i......
  • vue3-pinia保持数据时效性,不会因为刷新浏览器丢失实时数据(pinia-plugin-persistedstat
    1.方法一(pinia-plugin-persistedstate)1.安装插件-pinia-plugin-persistedstateyarnaddpinia-plugin-persistedstatenpmipinia-plugin-persistedstate2.在pinia中注册import{createPinia}from'pinia';importpiniaPluginPersistedstatefrom'pinia-pl......
  • sqlsugar 封装 单例模式 多数据库
    #PlayGround\.config\dotnet-tools.json{"version":1,"isRoot":true,"tools":{"csharpier":{"version":"0.29.1","commands":["dotnet-csharpi......
  • 第四章 Java核心类库 第二节 常用Java类库
    1.Math类与常用数学方法首先,我们来看一下Math类。Math类简介:Math类提供了一组用于数学运算的静态方法,包括求绝对值、取整、平方根、幂运算等常见操作。这些方法都是静态的,意味着我们可以直接通过类名调用它们。常用方法:abs():返回绝对值。ceil()和floor():分别返回向......
  • sqlsugar 单例模式 封装
    usingSystem.Linq.Expressions;usingMicrosoft.Extensions.Configuration;usingSqlSugar;namespaceSqlSugarFrameworkCore;publicclassDbSettings{publicconststringAppOne="AppOne";publicconststringAppDevOne="AppDevOne";pub......
  • SpringBoot把本地的对象封装成为Nacos的配置对象
    你需要有个NacosNacos建立你的配置文件--建议yml文件编写你的yml配置platform:transaction:properties:notifyHost:"http://10.130.1.18:${server.port.cztech-service-gateway}"smsTemplate:"TEM_0029"#订单默认过期时间--分钟defau......
  • python读取配置文件&&简单封装 公共配置文件 config
    之前有做过把爬虫数据写到数据库中的练习,这次想把数据库信息抽离到一个ini配置文件中,这样做的好处在于可以在配置文件中添加多个数据库,方便切换(另外配置文件也可以添加诸如邮箱、url等信息)1.configparser模块python使用自带的configparser模块用来读取配置文件,配置文......
  • 笔记:第二节快速入门 流程图的使用(下)
     视频第九分钟左右,outArray的size设置为5,初始值定为zeros(1,5),仿真失败。作者将初始值改为为zeros(5,1),之后成功。我尝试将初始值仍定为zeros(1,5),只需将outArray的size设置为-1(代表继承之前格式的意思)或者改为(1,5),仿真也可以运行.按照我的理解对constant的输入[12345]或......
  • pygame封装常用控件,第二日,有滑块的文本显示域
    #coding=utf-8importos,sys,re,timeimportpygameimportrandomfromwin32apiimportGetSystemMetricsfromtkinterimportmessageboxpygame.init()pygame.display.set_caption("我的控件")percent=0.6screen_width=GetSystemMetrics(0)screen_heig......