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

Vue3快速上手(十七)Vue3之状态管理Pinia

在这里插入图片描述

一、简介

Pinia官网:https://pinia.vuejs.org/zh/
从官网截图里可以直接看到,pinia是一个vuejs的状态(数据)管理工具。功能性同vuex。logo是小菠萝。它是一个集中式状态管理工具。就是将多个组件共用的数据管理起来,重复利用。有点类似缓存的意思。
在这里插入图片描述

二、Pinia环境搭建

2.1 引入Pinia依赖

npm install pinia

wangdy@mb vue3_study % npm install pinia
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'rollup@4.9.4',
npm WARN EBADENGINE   required: { node: '>=18.0.0', npm: '>=8.0.0' },
npm WARN EBADENGINE   current: { node: 'v16.20.2', npm: '8.19.4' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'vite@5.0.11',
npm WARN EBADENGINE   required: { node: '^18.0.0 || >=20.0.0' },
npm WARN EBADENGINE   current: { node: 'v16.20.2', npm: '8.19.4' }
npm WARN EBADENGINE }added 2 packages in 2s
wangdy@mb vue3_study % 

2.2 配置使用Pinia

编辑main.ts,引入Pinia,创建Pinia,使用Pinia即可

import './assets/main.css'import { createApp } from 'vue'
import App from './App.vue'
/* 引入路由器 */
import router from './router'
/* 引入Pinia */
import { createPinia } from 'pinia'
const app = createApp(App)
// 创建Pinia
const pinia = createPinia()
// 使用Pinia
app.use(pinia)
// 使用路由器
app.use(router)
app.mount('#app')

配置后,在vue开发者工具里就可以看到Pinia了。
在这里插入图片描述

三、Pinia操作数据

设定一个场景,模拟用户登录,将用户基本信息存入pinia,在其他页面使用并展示。

3.0 场景:

Login.vue

<template><div class=""><input type="text" v-model="userLogin.userName" /><br><input type="text" v-model="userLogin.pwd" /><br><button @click="login">登录</button>

相关文章:

  • 基于sortablejs实现拖拽element-ui el-table表格行进行排序
  • java Flink(四十二)Flink的序列化以及TypeInformation介绍(源码分析)
  • 探索ChatGPT时代下的下一代信息检索系统:机遇与挑战
  • 系统资源耗尽对服务器的影响
  • Linux 系统日志
  • (一)Linux+Windows下安装ffmpeg
  • docker opensearch arm64 运行失败解决方案
  • 国内ip切换是否合规?
  • 针对ETC系统的OBE-SAM模块设计方案
  • python --- 练习题3
  • AI基础知识(3)--神经网络,支持向量机,贝叶斯分类器
  • S32 Design Studio 中断
  • python日常刷题(一)
  • web蓝桥杯真题:灯的颜色变化
  • Java使用itextpdf往pdf中插入图片
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【RocksDB】TransactionDB源码分析
  • DataBase in Android
  • Debian下无root权限使用Python访问Oracle
  • gulp 教程
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • JavaScript设计模式之工厂模式
  • Netty 4.1 源代码学习:线程模型
  • ng6--错误信息小结(持续更新)
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • 安装python包到指定虚拟环境
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 三分钟教你同步 Visual Studio Code 设置
  • 山寨一个 Promise
  • 消息队列系列二(IOT中消息队列的应用)
  • 小而合理的前端理论:rscss和rsjs
  • AI算硅基生命吗,为什么?
  • C# - 为值类型重定义相等性
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ###STL(标准模板库)
  • $GOPATH/go.mod exists but should not goland
  • (8)STL算法之替换
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (九)c52学习之旅-定时器
  • (四)鸿鹄云架构一服务注册中心
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .bat批处理(一):@echo off
  • .java 9 找不到符号_java找不到符号
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .net中调用windows performance记录性能信息
  • .pop ----remove 删除
  • @font-face 用字体画图标