按功能拆分 Pinia 仓库
1、示例仓库结构以下示例来自AI存档是为了后期看到此分割结构src/ ├── stores/ # 所有 Pinia 仓库的根目录 │ ├── index.js # 仓库的统一导出入口可选但推荐 │ ├── user.js # 用户相关仓库登录、个人信息等 │ ├── cart.js # 购物车相关仓库商品增删、数量等 │ ├── goods.js # 商品相关仓库列表、详情、筛选等 │ └── settings.js # 系统设置仓库主题、语言等 └── main.js # 项目入口2、编写单个功能的仓库文件①用户仓库src/stores/user.jsimport { defineStore } from pinia // 定义并导出用户仓库命名规则use 功能名 Store export const useUserStore defineStore(user, { // 状态存储用户相关数据 state: () ({ userId: , username: , token: , avatar: , isLogin: false }), // 计算属性基于state派生的状态 getters: { // 示例获取用户信息摘要 userInfoSummary: (state) { return state.isLogin ? ${state.username} (${state.userId}) : 未登录 } }, // 方法修改状态的逻辑同步/异步都支持 actions: { // 登录操作 login(userData) { this.userId userData.userId this.username userData.username this.token userData.token this.avatar userData.avatar this.isLogin true // 可结合异步请求如 await api.login(xxx) }, // 退出登录 logout() { // 重置statePinia内置方法快速清空当前仓库状态 this.$reset() } } })②购物车仓库src/stores/cart.jsimport { defineStore } from pinia export const useCartStore defineStore(cart, { state: () ({ // 购物车商品列表[{ id, name, price, count }] goodsList: [], totalPrice: 0 }), getters: { // 计算购物车商品总数 goodsCount: (state) { return state.goodsList.reduce((sum, item) sum item.count, 0) } }, actions: { // 添加商品到购物车 addGoods(goods) { const existing this.goodsList.find(item item.id goods.id) if (existing) { existing.count 1 } else { this.goodsList.push({ ...goods, count: 1 }) } // 重新计算总价 this.calcTotalPrice() }, // 计算总价内部辅助方法 calcTotalPrice() { this.totalPrice this.goodsList.reduce( (sum, item) sum item.price * item.count, 0 ) }, // 清空购物车 clearCart() { this.goodsList [] this.totalPrice 0 } } })3、统一导出入口可选但推荐创建src/stores/index.js把所有仓库统一导出方便组件中批量引入// 统一导出所有仓库简化组件引入 export * from ./user export * from ./cart export * from ./goods export * from ./settings4、Pinia 在 main.js 中的注册步骤// src/main.js import { createApp } from vue import { createPinia } from pinia // 导入 Pinia 创建方法 import App from ./App.vue // 1. 创建 Vue 应用实例 const app createApp(App) // 2. 创建 Pinia 实例 const pinia createPinia() // 3. 将 Pinia 挂载到 Vue 应用上核心步骤 app.use(pinia) // 4. 挂载应用到 DOM app.mount(#app)5、在组件中使用拆分后的仓库template div div用户状态{{ userStore.userInfoSummary }}/div div购物车商品数{{ cartStore.goodsCount }}/div button clickhandleLogin模拟登录/button button clickhandleAddGoods添加商品到购物车/button /div /template script setup // 方式1从统一入口引入推荐 import { useUserStore, useCartStore } from /stores // 方式2直接从单个仓库文件引入 // import { useUserStore } from /stores/user // import { useCartStore } from /stores/cart // 获取仓库实例Pinia会自动缓存多次调用返回同一个实例 const userStore useUserStore() const cartStore useCartStore() // 模拟登录 const handleLogin () { userStore.login({ userId: 1001, username: 张三, token: xxx-xxx-xxx, avatar: /avatar.png }) } // 模拟添加商品 const handleAddGoods () { cartStore.addGoods({ id: goods001, name: Vue实战教程, price: 99 }) } /script6、跨仓库调用。如果一个仓库需要依赖另一个仓库的数据 / 方法比如购物车需要用户登录状态可在actions中直接引入并使用// 在 cart.js 中依赖 user.js 的状态 import { useUserStore } from ./user export const useCartStore defineStore(cart, { actions: { addGoods(goods) { const userStore useUserStore() // 未登录则提示不允许添加 if (!userStore.isLogin) { alert(请先登录) return } // 已登录则执行添加逻辑 // ... 省略原有添加代码 } } })

相关新闻

云电脑测试版

云电脑测试版

链接:https://pan.quark.cn/s/f7b0c8ebf826最近在使用VMware虚拟系统安装不同版本的系统来测试程序,发现启动慢还占用系统资源出现卡顿问题,很影响进度,于是搭建了云电脑非常实用,要使用的时间直接远程登录直接秒开还能减轻系统负担,完美!云电脑已经续费半年,7*24不…

2026/7/4 20:08:10 阅读更多 →
一招教你正确打开星绘友晴天steam版

一招教你正确打开星绘友晴天steam版

网易雷火工作室研发的宇宙生活模拟多人派对融合型休闲游戏《星绘友晴天》定于2月24日steam新品节开放试玩Demo,2月28日开启iOS/安卓/PC三端同步不限量不删档测试作为网易又一治愈种田和多人派对玩法的游戏,早在初期就已收获测试玩家的一众好评游戏首创“…

2026/5/17 5:19:39 阅读更多 →
RAG不用向量数据库居然更准?深度解析技术新思路(非常详细),从入门到精通,这一篇讲透了!

RAG不用向量数据库居然更准?深度解析技术新思路(非常详细),从入门到精通,这一篇讲透了!

最近在翻 RAG 相关项目时,看到一个挺反直觉的思路,忍不住多看了几眼! 它就是——PageIndex 它做了一件不一样的事:把向量数据库,从 RAG 里彻底拿掉了 不是“少用”,也不是“可选”,而是从设计…

2026/7/4 20:27:36 阅读更多 →

最新新闻

ai模特识别能力如何?商用图片批量生成平台横评与实用对比

ai模特识别能力如何?商用图片批量生成平台横评与实用对比

随着ai模特识别技术持续进步,电商行业的商品展示效率和多样性得以大幅提升。作为从业者,我实际体验多款平台后发现,商用级AI图片处理工具正在逐步成为电商图片生产新基建。 作图鸟详解 作图鸟地址:https://www.zuotuniao.com/?…

2026/7/6 15:52:49 阅读更多 →
Hermes Studio 安全配置最佳实践:认证、授权与数据保护

Hermes Studio 安全配置最佳实践:认证、授权与数据保护

Hermes Studio 安全配置最佳实践:认证、授权与数据保护 【免费下载链接】hermes-studio Web dashboard for Hermes Agent — multi-platform AI chat, session management, scheduled jobs, usage analytics 项目地址: https://gitcode.com/gh_mirrors/he/hermes…

2026/7/6 15:52:49 阅读更多 →
Fashion-MNIST实战指南:从传统MNIST到现代计算机视觉的进阶之路

Fashion-MNIST实战指南:从传统MNIST到现代计算机视觉的进阶之路

Fashion-MNIST实战指南:从传统MNIST到现代计算机视觉的进阶之路 【免费下载链接】fashion-mnist A MNIST-like fashion product database. Benchmark :point_down: 项目地址: https://gitcode.com/gh_mirrors/fa/fashion-mnist 在机器学习的演进历程中&…

2026/7/6 15:48:45 阅读更多 →
深度解析Marp插件开发:5大进阶实战技巧与架构设计指南

深度解析Marp插件开发:5大进阶实战技巧与架构设计指南

深度解析Marp插件开发:5大进阶实战技巧与架构设计指南 【免费下载链接】marp The entrance repository of Markdown presentation ecosystem 项目地址: https://gitcode.com/gh_mirrors/mar/marp Marp作为现代化的Markdown演示文稿生态系统,为开发…

2026/7/6 15:48:45 阅读更多 →
Lightpanda:9倍内存效率的革命性无头浏览器,专为AI时代打造

Lightpanda:9倍内存效率的革命性无头浏览器,专为AI时代打造

Lightpanda:9倍内存效率的革命性无头浏览器,专为AI时代打造 【免费下载链接】browser Lightpanda: the headless browser designed for AI and automation 项目地址: https://gitcode.com/GitHub_Trending/browser32/browser 在AI代理、自动化测试…

2026/7/6 15:46:42 阅读更多 →
如何在3分钟内用Open-Sora免费创作专业级AI视频:完整指南

如何在3分钟内用Open-Sora免费创作专业级AI视频:完整指南

如何在3分钟内用Open-Sora免费创作专业级AI视频:完整指南 【免费下载链接】Open-Sora Open-Sora: Democratizing Efficient Video Production for All 项目地址: https://gitcode.com/GitHub_Trending/op/Open-Sora 想象一下,只需输入几个简单的文…

2026/7/6 15:44:40 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻