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

Zustand和Pinia的对比(谁更好用)

先给结论没有绝对更好只看你用什么框架、项目规模、开发需求Vue项目无脑pinia官方原生、生态、调试全拉满React项目Zustand几乎全方位吊打旧方案比Pinia更适配React两者框架互不通Pinia是Vue专属Zustand跨框架React、vue、原生JS都能用1、基础信息Zustand和Pinia对比ZustandPinia所属框架跨框架react首选、vue、原生js通用vue专属包体积极小~1.2kb~3kbAPI极简度极致极简无Provider,无Reducer,无Mutation简洁比vuex简单但概念更多state、getter、actionts类型原生完美类型推导几乎不用手动写类型优秀vue生态TS友好更新方式set()直接该状态写法极短直接修改stateaction封装vue响应式原生调试工具支持devTools,够用Vue DevTools深度集成调试体验顶级模块化多store原生天然拆分非常灵活模块化完善官方规范模块拆分中间件极强持久化中间件选择器钱比较内置内置基础能力持久化需插件生态插件丰富学习成本极低10分钟上手低vue开发者零成本从vuex迁移2、具体使用Zustand一、安装npm install zustand #持久化插件token存在localStorage,刷新不丢失必装 npm install zustand-persist二、store文件封装 src/store/userStore.tsimport {creact} from zustand; import {persist} from zustand-persist; //1.定义store数据类型 interface UserState{ token:string userInfo:{ username:string userId:number } //方法 //设置token setToken:(token:string)void //设置用户信息 setUserInfo:(info:UserState[userInfo])void //退出登录清空所有数据 logout:()void } //2.zustand封装持久化自动存储 export const useUserStorecreateUserState()( persist( (set)({ token:, userInfo:null, //设置token setToken:(token){ set({token}) }, //设置用户信息 setUserInfo:(userInfo){ set({userInfo}) }, //退出登录-一键清空 logout:(){ set({ token:, userInfo:null }) } }), { //持久化配置 key:user_store,//localstorage key名字 storage:localStorage,//存储位置 }, ) )三、页面存储import { useUserStore } from /store/userStore function LoginPage() { // 解构获取数据和方法 const { token, userInfo, setToken, setUserInfo, logout } useUserStore() // 模拟登录接口请求成功后 const handleLogin async () { // 假设接口返回 const res { token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9, user: { userId: 1001, username: 前端用户 } } // 存入全局状态 自动持久化到本地 setToken(res.token) setUserInfo(res.user) } return ( div div当前token{token}/div button onClick{handleLogin}模拟登录/button button onClick{logout}退出登录/button /div ) } export default LoginPage四、取出调用重点知识点useUserStore.getState()非 React 组件、非 hooks 环境万能调用axios、工具函数里通用// src/utils/request.ts axios封装 import axios from axios import { useUserStore } from /store/userStore const service axios.create({ baseURL: import.meta.env.VITE_BASE_URL }) // 请求拦截器 携带token service.interceptors.request.use((config) { // 直接调用获取无需hooks无需组件内 const token useUserStore.getState().token if (token) { config.headers.Authorization Bearer ${token} } return config }) export default servicePinia一、安装npm install pinia二、封装import { defineStore } from pinia export const useUserStore defineStore(user, { state: () ({ token: , userInfo: null }), actions: { setToken(token) { this.token token }, setUserInfo(info) { this.userInfo info }, logout() { this.token this.userInfo null } }, persist: true })三、存储const functionSubmit (res) { if (res.data.code 200 res.data.status) { let token res.data.data.token;//根据后端返回的格式自定义 let userInfo res.data.data.userInfo; //重要是这两个 userStore.setToken(questTicket); userStore.setUserInfo(userInfo); } };四、使用import { useUserStore } from /stores/index.js; // 确保路径正确 //使用 const userStore useUserStore();两者对比总结代码量Zustand 略少一点点但差距不大上手难度Zustand 概念更少只有state set修改没有 mutation、没有 getter跨组件 / 非组件调用PiniauseUserStore().xxxZustand组件内 hooks非组件getState()非常顺手框架归属Pinia 只属于 VueZustand 只属于 React 生态首选千万不要在 Vue 用 Zustand也不要在 React 硬用 Pinia

相关文章:

Zustand和Pinia的对比(谁更好用)

先给结论:没有绝对更好,只看你用什么框架、项目规模、开发需求;Vue项目:无脑pinia(官方原生、生态、调试全拉满)React项目:Zustand几乎全方位吊打旧方案,比Pinia更适配React两者框架…...

丝杆升降机频繁启动该如何保养?

频繁启动对丝杆升降机是严峻考验,保养必须“加码”。以下是针对性的保养要点,我们分项说明:核心策略:更勤、更强、更智能1. 润滑是第一生命线,必须“少量多次”频繁启停会产生更多热量和剪切力,油脂容易变稀…...

RISC-V IDE混战,我为什么最终选择了Segger Embedded Studio?

RISC-V IDE选型实战:为何Segger Embedded Studio成为我的最终选择? 当兆易创新GD32V103开发板静静躺在桌面上时,我意识到这个预算有限的物联网网关项目正面临关键抉择——在碎片化的RISC-V生态中,如何选择一款既符合团队技术栈又能…...

别再只盯着编译器版本!解决ARMCC A1163E报错,关键在Keil这个隐藏设置

破解ARMCC A1163E报错:Keil隐藏配置的深度解析 当你面对屏幕上刺眼的ARMCC: error A1163E: unknown opcode报错时,是否已经尝试了所有能找到的编译器版本却依然无解?这个困扰众多嵌入式开发者的经典问题,往往不是编译器版本的问题…...

从用户操作反推设计:如何用ABAP ALV的SEL_MODE参数优化你的SAP报表体验?

从用户操作反推设计:如何用ABAP ALV的SEL_MODE参数优化你的SAP报表体验? 在SAP系统开发中,ALV(ABAP List Viewer)报表是业务用户最常接触的界面之一。作为ABAP开发者,我们往往过于关注功能实现而忽略了交互…...

Linux服务器安全加固与防护:从基础防御到纵深免疫,筑牢企业数字底座

在数字化转型加速的今天,Linux服务器作为企业核心业务承载、数据存储与服务部署的核心载体,其安全稳定性直接决定企业业务连续性与数据资产安全。随着黑客攻击手段的迭代升级——从传统的暴力破解、漏洞利用,到新型的APT攻击、容器逃逸、供应…...

Aspose.Slides vs Spire.Presentation:.NET处理PPT选哪个?一份来自实际项目的深度对比与踩坑总结

Aspose.Slides vs Spire.Presentation:.NET开发者的PPT处理库深度选型指南 在.NET生态中处理PowerPoint文件时,技术选型往往让人纠结。作为经历过多个企业级项目的老兵,我深刻理解一个PPT处理库的选择会如何影响后续开发效率、系统稳定性和法…...

3. ESP32 UART串口实战:从基础配置到Arduino多场景通信

1. ESP32 UART串口基础入门 第一次接触ESP32的UART功能时,我完全被各种专业术语搞晕了。后来才发现,UART其实就是我们常说的串口通信,就像两个人用对讲机聊天一样简单。ESP32芯片内置了3个独立的UART控制器,相当于给你配了3台对讲…...

告别QCalendarWidget!用QPushButton手搓一个Qt日历时间选择器(附完整源码)

从零构建Qt高定制化日历时间选择器:42个按钮的布局艺术与实战封装 在Qt应用开发中,原生日期时间控件往往难以满足现代UI设计的需求。当项目需要与整体设计语言高度统一的日期选择组件时,大多数开发者都会面临两种选择:要么忍受QCa…...

通达信公式进阶:巧用逻辑与选择函数,让你的策略信号更“聪明”

通达信公式进阶:逻辑与选择函数的实战应用指南 在量化交易的世界里,通达信公式是许多投资者构建交易策略的利器。然而,很多用户在使用过程中常常遇到一个痛点:策略信号过于简单导致假信号频出,实战效果大打折扣。本文将…...

TwinCAT ADS通信故障排查实战:从网卡IP到防火墙,手把手教你定位网络问题

TwinCAT ADS通信故障排查实战:从网卡IP到防火墙,手把手教你定位网络问题 凌晨三点,产线突然停摆,HMI上闪烁着刺眼的通讯中断警报。作为值班工程师,你发现TwinCAT控制器间的ADS通信链路异常——这正是工业现场最常见的紧…...

UE4/UE5委托实战避坑指南:从触发开关灯到跨Actor通信,手把手教你选对类型

UE4/UE5委托实战避坑指南:从触发开关灯到跨Actor通信 在虚幻引擎开发中,委托系统是实现对象间通信的核心机制之一。很多中级开发者在实际项目中都会遇到这样的困惑:明明功能实现了,却在某些情况下出现崩溃或内存泄漏;或…...

AirPodsDesktop:让Windows和Linux用户也能享受苹果耳机的完整体验

AirPodsDesktop:让Windows和Linux用户也能享受苹果耳机的完整体验 【免费下载链接】AirPodsDesktop ☄️ AirPods desktop user experience enhancement program, for Windows and Linux (WIP) 项目地址: https://gitcode.com/gh_mirrors/ai/AirPodsDesktop …...

淘宝api:通过商品ID获取商品详情数据教程

下面给你一份可直接用于开发、解析、入库的淘宝商品详情API 完整解析,包含标准返回结构、关键字段、解析要点、常见坑。1.接口基本信息接口名:taobao.item.get作用:按商品 ID 获取公开 / 授权商品详情请求方式:POST(推…...

游戏引擎里的车水马龙:如何在Unity中实现高性能的宏观交通流实时渲染?

游戏引擎里的车水马龙:Unity中高性能宏观交通流实时渲染实战 当你在《赛博朋克2077》的夜之城街头驻足,或在《微软模拟飞行》中俯瞰城市脉络时,那些流动的车灯轨迹背后,是游戏引擎对大规模交通系统的高效调度。本文将从实时渲染视…...

别再让iPhone PWA状态栏颜色‘穿帮’!手把手教你用theme-color和apple-mobile-web-app-status-bar-style完美适配

别再让iPhone PWA状态栏颜色‘穿帮’!手把手教你用theme-color和apple-mobile-web-app-status-bar-style完美适配 深色主题的PWA应用在iPhone上运行时,顶部状态栏突然露出一条刺眼的白色横条——这种"穿帮"效果让精心设计的沉浸感瞬间破功。作…...

告别抓包失败!用VirtualXposed+JustTrustMe搞定Android 10+的HTTPS流量(保姆级图文)

突破Android高版本HTTPS抓包困境:VirtualXposedJustTrustMe实战指南 移动应用开发与安全测试中,HTTPS流量分析是必不可少的环节。但自Android 7.0引入网络安全配置后,特别是Android 10及以上版本强化了证书固定(SSL Pinning&#…...

ADS仿真从入门到精通:S参数实战解析与Touchstone文件应用

1. S参数基础:从水管模型到射频黑箱 第一次接触S参数时,我被这个看似抽象的概念困扰了很久,直到导师用厨房的水管打了个比方——想象你在连接两根不同直径的水管时,水流会在接口处产生反射和透射,这与高频信号在阻抗不…...

别只盯着LeetCode了!想进Google,你的GitHub仓库里还缺这几样东西

别只盯着LeetCode了!想进Google,你的GitHub仓库里还缺这几样东西 在技术面试的竞技场上,LeetCode刷题早已成为标配动作。但当所有候选人都能熟练解决动态规划和图论问题时,面试官的注意力自然会转向那些能真正体现工程素养的细节—…...

SkyReels-V2-DF-14B-720P 模型技术白皮书

一、模型简介SkyReels-V2-DF-14B-720P 是由昆仑万维 SkyworkAI 团队于 2025 年 4 月正式开源的全球首款基于 Diffusion-forcing(扩散强迫)架构的无限时长电影级视频生成大模型,作为 SkyReels-V2 系列的旗舰高分辨率版本,以 140 亿…...

当Trunk端口PVID配置错误时,你的网络会发生什么?一个真实故障排查案例复盘

Trunk端口PVID配置错误引发的网络故障:一次深度排查实录 那天凌晨2点15分,运维值班手机刺耳的警报声把我从半梦半醒中拽了出来。监控系统显示,财务VLAN和访客VLAN之间出现了异常广播流量——这本该是完全隔离的两个网络段。更诡异的是&#x…...

挖洞变现不踩坑!7 个正规合法途径,新手零基础从 0 赚到漏洞奖金

别再瞎找漏洞!7 个「合法变现」的挖洞途径,新手也能从 0 赚到第一笔奖金 提到漏洞挖掘,很多人觉得是 “大神专属”—— 要么找不到合法渠道,要么担心没技术赚不到钱,最后只能在网上瞎逛浪费时间。但其实从新手到高阶&…...

别再只用@PostConstruct初始化了!SpringBoot中3种替代方案实战对比(含InitializingBean)

别再只用PostConstruct初始化了!SpringBoot中3种替代方案实战对比(含InitializingBean) 在SpringBoot项目中,Bean的初始化是开发过程中不可或缺的一环。很多开发者习惯性地使用PostConstruct注解来完成初始化逻辑,这确…...

5G NR PUCCH信道实战解析:从SR请求到HARQ反馈,手把手教你理解上行控制流程

5G NR PUCCH信道实战解析:从SR请求到HARQ反馈的工程师指南 在5G NR系统中,物理上行控制信道(PUCCH)如同空中交通管制塔台,默默协调着终端与基站间无数关键控制信号的传递。想象一下,当你用手机观看4K视频时…...

MyBatis-Plus实战:用apply搞定那些‘奇奇怪怪’的数据库函数查询

MyBatis-Plus实战:用apply搞定那些‘奇奇怪怪’的数据库函数查询 在业务开发中,我们经常会遇到一些需要借助数据库函数才能实现的查询需求。比如按日期格式化后的结果查询、按字段的某部分匹配、或者使用数据库特有的JSON处理函数等。这些需求如果直接用…...

Ubuntu 20.04下,用Anaconda虚拟环境搞定pycairo和PyGObject安装(附清华源加速)

Ubuntu 20.04下Anaconda虚拟环境中pycairo与PyGObject的完整安装指南 在Python开发中,特别是涉及多媒体处理、图形界面开发或无人机视觉应用时,pycairo和PyGObject这两个库几乎是绕不开的依赖项。然而,许多开发者在Ubuntu系统下通过pip安装这…...

Linux服务器部署tiny-cuda-nn:从环境校验到NeRF加速实战

1. 为什么需要tiny-cuda-nn? 如果你正在做NeRF相关的研究或开发,肯定遇到过训练速度慢的问题。传统的神经网络框架在NeRF这种需要大量计算的任务上表现平平,而tiny-cuda-nn就像给你的服务器装上了涡轮增压器。我在去年做一个室内场景重建项目…...

DHCP讲解(刘华强买瓜版)

编者注:(改编自《征服》第8集买瓜名场面)第一步:发现(Discover) 刘华强骑摩托晃进菜市场,眼神扫过一排摊位,猛踩一脚刹车,冲整个市场开腔:刘华强:…...

【2026内存安全编码白皮书】:C语言开发者必须立即落地的7项零成本接入策略

第一章:现代 C 语言内存安全编码规范 2026 如何实现快速接入现代 C 语言内存安全编码规范 2026(简称 MSC-2026)是一套面向工业级嵌入式与系统软件的轻量级、可增量集成的内存安全实践集合,聚焦于编译时约束、运行时防护与静态分析…...

【仅限首批信创集成商内部流通】Docker 27 国产化适配白皮书(含17个真实POC环境日志+4类CPU架构差异对照表)

第一章:Docker 27 国产化适配总体技术路线与政策背景近年来,国家密集出台《“十四五”数字经济发展规划》《关键信息基础设施安全保护条例》及《信创产业三年行动计划(2023–2025)》等政策文件,明确将容器技术纳入基础…...