当前位置: 首页 > news >正文

uniapp vue3版本中使用pinia 以及持久化处理

使用hbuiderx创建的项目 里面已经包含了

.这里简单的说一下 引入方式 有的小伙伴可能没分清

在main.js中直接引入
我这里实现 帮这些引入抽离抽来,在根目录抽离一个出来在根目录新建一个global
文件下 下面建立global.js文件

新建global/global.js

import { createPinia } from 'pinia'
import persist from 'pinia-plugin-persistedstate'
const pinia = createPinia()
pinia.use(persist)
export default function globalUnit(app) {app.use(pinia)
}

main.js中引用

import { createSSRApp } from 'vue'
import App from './App.vue'
import globalUnit  from '@/global/global.js'// #ifdef VUE3
export function createApp() {const app = createSSRApp(App)globalUnit(app)return {app,}
}
// #endif

注意这里有的写发是as 别名的方式

import * as Pinia from  'pinia'app.use(Pinia.createPinia());

其实也是 帮pinia中的所用东西 拿出来 用个别名Pinia 来接收使用

const pinia = createPinia()     也就是 Pinia.createPinia()

createPinia 也就是 pinia 中的一个方法而已

二:废话不多说直接开始使用
举例都是在根目录新建 个人习惯 ,根据自己的方式只要路径对就行

新建stores/userStore.js

userStore.js如下
就比如登录的时候存储的用户信息 userInfo


import { defineStore } from 'pinia';export const useUserStore = defineStore('user', {state: () => ({userInfo: {},}),actions: {login(userInfo) {this.userInfo = userInfo;}},// 可选:持久化插件(如使用 localStorage)persist: true,
});
  1. 在页面中使用 引入
    比如在h5login.vue
<template><view><view class="logonbox"><uni-easyinput maxlength="11" v-model="phone" placeholder="请输入手机号"></uni-easyinput><uni-easyinput v-model="password" type="password" placeholder="请输入密码"></uni-easyinput><button type="primary" @click="handLogin">登录</button></view></view>
</template><script setup>import { useUserStore } from '@/stores/userStore'const userStore = useUserStore()let phone = ref("123456")let password = ref("6666")const handLogin = () => {// 这里自己接口去获取数据 最后传进去晚上 这里模拟一个objlet  obj ={name:"老六",token:"asdaklqjkwewqeq12312daksds"}userStore.login(obj )}
</script><style scoped lang="less">.logonbox {width: 610rpx;height: 300rpx;background: #f4f4f4f4;margin: 200rpx auto;display: flex;flex-direction: column;justify-content: center;}
</style>

三:如果你没开启 持久存储的时候你强行刷新页面 值是会丢失的
开启之后再本地储存里面就是多一个
在这里插入图片描述

http://www.dtcms.com/a/295732.html

相关文章:

  • 【自用】NLP算法面经(6)
  • TCP重传率优化在云服务器网络协议栈的调优实践
  • MySQL高可用部署
  • 深度分析Android多线程编程
  • aml1-eto 移植后多长时间转阴
  • Android跨进程通信完全教程:从基础到实战
  • 从0开始学习R语言-Day56--空间变系数模型
  • 进阶向:基于Python的轻量级Markdown笔记管理器
  • git鉴权失败问题每次clone 都要输入用户名密码问题
  • Two Knights(数学归纳)
  • 本地部署Jupyter服务,没有公网IP如何用内网穿透工具实现外网远程访问?
  • 人形机器人_双足行走动力学:Maxwell模型及在拟合肌腱特性中的应用
  • Linux 下安装Python指定版本(可离线安装)
  • Java学习----工厂方法模式
  • 线程通信模型
  • 中国西北典型绿洲区土壤水分特征(2018-2019年)
  • [火了]-----FastGPT 插件系统架构演进:从 Monorepo 到独立生态
  • Spring MVC 统一响应格式:ResponseBodyAdvice 从浅入深
  • 快速将前端得依赖打为tar包(yarn.lock版本)并且推送至nexus私有依赖仓库(笔记)
  • 【工具变量】省市县空气流通系数数据集(1940-2025.3年)
  • Dataease2.10 前端二次开发
  • Windows 系统中 CURL 命令使用指南及常见错误解析
  • Silly Tavern 教程②:首次启动与基础设置
  • 极客大挑战2019-HTTP
  • Vulnhub Matrix-Breakout-2-Morpheus靶机攻略
  • 网络资源模板--基于Android Studio 实现的线上点餐系统
  • 【Linux基础知识系列】第六十三篇 - 文件编辑器基础:vim
  • 自己动手造轮子:如何创建JAR并通过Maven在Spring Boot中引用
  • Opencv C# 重叠 粘连 Overlap 轮廓分割 (不知道不知道)
  • Unity 进行 3D 游戏开发如何入门