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

Vue传参Props还是Pinia

Pinia 适用场景

  1. 全局状态管理

    • 多个不相关组件需要共享数据
    • 需要跨页面/路由共享状态
  2. 复杂状态逻辑

    • 包含多个相互关联的状态
    • 有复杂的状态修改逻辑
  3. 持久化需求

    • 需要将状态保存到localStorage/sessionStorage
    • 页面刷新后需要恢复状态(恢复最后一次修改的状态)
  4. 异步操作管理

组件传参适用场景

  1. 父子组件通信

    • props向下传递
    • emit向上传递
  2. 局部状态共享

    • 仅在相邻组件间共享数据
    • 组件关系明确(父子、兄弟)
  3. 一次性数据传递

    • 数据只需传递一次,不需要持久化
    • 简单的数据结构

选择依据

特性PiniaProps组件传参
数据范围全局局部
组件关系任意组件相关组件
复杂度适合复杂状态适合简单数据
持久化支持不支持
调试难度中等简单
性能影响较大较小

最佳实践

  • 优先使用组件传参处理局部状态
  • 当数据需要在多个不相关组件间共享时使用Pinia
  • 避免过度使用全局状态管理

Pinia的持久化需求

// store/index.ts
import { createPinia } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'const pinia = createPinia()
pinia.use(piniaPluginPersistedstate)export default pinia
// store/user.ts
import { defineStore } from 'pinia'export const useUserStore = defineStore('user', {state: () => ({userInfo: null,token: '',permissions: []}),actions: {setUserInfo(info) {this.userInfo = info}},// 持久化配置persist: {// 存储的键名key: 'user-store',// 使用的存储方式storage: localStorage,// 指定要持久化的字段paths: ['token', 'userInfo'],}
})

http://www.lryc.cn/news/2397566.html

相关文章:

  • 学习STC51单片机25(芯片为STC89C52RCRC)
  • 宁夏农业科技:创新引领,赋能现代农业新篇章
  • Accelerate 2025北亚巡展正式启航!AI智御全球·引领安全新时代
  • 005学生心理咨询评估系统技术解析:搭建科学心理评估平台
  • azure devops 系列 - 常用的task
  • 贪心算法应用:多重背包启发式问题详解
  • 【保姆级教程】PDF批量转图文笔记
  • Pytest Fixture 是什么?
  • Spring Boot 基础知识全面解析:快速构建企业级应用的核心指南
  • 数据库系统概论(十一)SQL 集合查询 超详细讲解(附带例题表格对比带你一步步掌握)
  • [mcu]系统频率
  • clickhouse如何查看操作记录,从日志来查看写入是否成功
  • 5G-A:开启通信与行业变革的新时代
  • 鸿蒙OS在UniApp中集成Three.js:打造跨平台3D可视化应用#三方框架 #Uniapp
  • Vue 3 组件化设计实践:构建可扩展、高内聚的前端体系
  • 腾讯云 Python3.12.8 通过yum安装 并设置为默认版本
  • 鸿蒙OSUniApp页面切换动效实战:打造流畅精致的转场体验#三方框架 #Uniapp
  • React 泛型组件:用TS来打造灵活的组件。
  • TDengine 集群运行监控
  • 图像任务中的并发处理:线程池、Ray、Celery 和 asyncio 的比较
  • DeepSeek 赋能智能物流:解锁仓储机器人调度的无限可能
  • C#上传图片后压缩
  • uniapp路由跳转toolbar页面
  • 【linux】知识梳理
  • PostgreSQL 内置扩展列表
  • NodeMediaEdge快速上手
  • ChatOn:智能AI聊天助手,开启高效互动新时代
  • 基于Vue3.0的【Vis.js】库基本使用教程(002):图片知识图谱的基本构建和设置
  • 监督学习 vs 无监督学习:AI两大学习范式深度解析
  • C# Costura.Fody 排除多个指定dll