Normy快速上手:5分钟搞定React Query数据自动规范化与缓存自动更新

发布时间:2026/10/22 1:37:11

Normy快速上手:5分钟搞定React Query数据自动规范化与缓存自动更新 Normy快速上手5分钟搞定React Query数据自动规范化与缓存自动更新【免费下载链接】normyAutomatic normalization and data updates for data fetching libraries (react-query, vue-query, trpc, swr, rtk-query and more)项目地址: https://gitcode.com/gh_mirrors/no/normyNormy 是一款开源的数据自动规范化库专为 React Query、SWR、RTK Query 等数据获取库设计。它能把你的应用数据按 id 自动规范化存储并在 mutation 成功后自动更新所有相关缓存让你彻底告别手写setQueryData的繁琐逻辑。一、Normy 是什么解决什么痛点 如果你用过 React Query一定熟悉这样的场景用户编辑了一本书的名字你需要手动更新书籍列表查询再手动更新书籍详情查询。查询越多这段onSuccess代码就越长而且你必须清楚知道哪些查询需要被更新。Normy 就是来解决这个问题的自动规范化所有带id字段的对象无论嵌套多深都会按 id 存入一个全局的规范化存储中自动缓存更新mutation 返回{ id: 1, name: 新名字 }时Normy 会自动找出所有包含id: 1的查询并同步更新它们多库支持官方已提供 React Query、SWR、RTK Query 的集成核心逻辑位于packages/normy/目录基于它的normy/core还可以轻松扩展其他库简单说数据改一处缓存处处同步。二、5分钟快速上手React Query 数据规范化三步走第 1 步安装 npm 包npm install normy/react-query 最新版支持 React Query 5 和 tRPC 11如果你还在用旧版本 React Query需要安装normy/react-query0.10.2。normy/core会作为依赖自动安装无需手动处理。第 2 步用 Provider 包裹应用只需在QueryClientProvider外层再套一层QueryNormalizerProvider并传入queryClientQueryNormalizerProvider queryClient{queryClient} QueryClientProvider client{queryClient} App / /QueryClientProvider /QueryNormalizerProvider第 3 步删除手动的 onSuccess 更新代码从此 mutation 不再需要写queryClient.setQueryData(...)——Normy 会自动完成规范化存储的合并和所有依赖查询的刷新。整个 React Query 集成实现非常轻薄核心只有两个文件Provider 封装 和 normalizer 创建逻辑。三、缓存自动更新的原理3个前提条件Normy 的自动更新基于id 追踪机制内部实现可参考 create-normalizer.ts、normalize.ts 和 denormalize.ts。要让它正常工作你的数据需满足 3 个条件#条件说明1有标准化的标识字段通常是id若用_id可通过getNormalizationObjectKey: obj obj._id自定义2id 在全应用范围内唯一若 id 只在同类型对象内唯一可拼接类型后缀如obj.id obj.type3相同 id 的对象结构一致同一个书在 A 查询里叫title在 B 查询里不能叫name只要满足这些任何嵌套层级的对象都会被规范化——父对象中只保留对子对象的引用子对象独立存储这也是它能跨查询同步更新的根本原因。四、什么时候仍需手动更新⚠️ 诚实说明顶层数组的新增/删除/排序仍需手动处理。比如删除一本书Normy 无法知道你要从哪个查询的列表中移除它新增一本书它也不知道该插入到哪个列表、哪个位置。但数组内部对象的更新仍然是自动的——例如书籍的likedByUsers列表整体变更会正常自动同步。五、进阶技巧调试、手动更新与性能优化开发调试给normalizerConfig传入devLogging: true控制台会打印每次查询的规范化明细生产环境自动关闭✋手动更新缓存收到 WebSocket 事件时可用useQueryNormalizer()的setNormalizedData({ id: 1, name: 新名字 })一键同步所有相关查询⚡按需规范化数据量极大或不需更新的查询可用meta: { normalize: false }单独关闭性能友好Normy 内置了结构性共享structural sharing优化——若重新请求的数据与现有缓存完全一致会跳过规范化相同 id 的数据若无实际变化也不会触发查询更新六、动手体验运行官方示例仓库自带 4 个可运行的示例项目位于examples/目录分别演示了 react-query、swr、rtk-query 和 trpc 的完整用法其中 examples/react-query/src/components/app.jsx 是一个带书籍列表、编辑、新增功能的完整 Demo非常适合上手研究。git clone https://gitcode.com/gh_mirrors/no/normy cd normy/examples/react-query npm install npm start打开localhost:3000试着修改一本书的名字你会看到列表和详情页的缓存被自动同步更新——这就是 Normy 的魔力。✨总结如果你的项目中 React Query 查询众多、mutation 后手动维护缓存的代码让你头疼Normy 用一行 Provider 包裹就能换来数据改一处、缓存处处同步的清爽体验。5 分钟接入代码量立省一大截。【免费下载链接】normyAutomatic normalization and data updates for data fetching libraries (react-query, vue-query, trpc, swr, rtk-query and more)项目地址: https://gitcode.com/gh_mirrors/no/normy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/23 0:02:26

Rust正成为AI基础设施的底层新标准

1. 项目概述:这不是技术风向标,而是基建层的静默迁移“3个信号:AI基建正在转向Rust”——这句话最近在多个技术社区高频出现,但很多人读完标题只留下模糊印象:哦,Rust又火了?AI圈开始用Rust了&a…

2026/10/23 0:02:26

Rust为何成为AI基础设施的确定性选择

1. 这不是技术风潮,是基建层的静默迁移最近在几个核心开源项目的更新日志里反复看到同一个现象:原本用Go写的CLI工具,新版本悄悄换成了Rust;某知名云原生中间件的v2.0架构图里,底层数据平面模块标注着“Rust重写中”&a…

2026/10/23 0:02:26

FreeRTOS任务通知实战详解:内核原理、API与避坑指南

裸机编程切到RTOS之后,任务之间的通信和同步永远是躲不开的坎。前面聊过队列、信号量、互斥锁、事件组,这次把FreeRTOS任务通知(Task Notification)单独拎出来讲透。原因很简单:任务通知是FreeRTOS里最容易用错、也最容…

2026/10/23 0:02:26

数据服务监控运维实战:从指标体系到告警治理与故障排查

周末凌晨两点,手机震了。第一反应是“数据服务挂了”。打开电脑看了下,果然,某张核心报表的数据产出时间已经超过SLA两小时,下游三个业务方连着发来问询。这种场景,做过大数据运维的人都不会陌生。数据服务的监控与运维…

2026/10/23 0:02:26

Verilog实现FPGA密码锁:矩阵键盘与状态机设计实战

说实话,这几年接触了不少想入门FPGA的朋友,如果你问哪个项目能一口气把Verilog的核心基本功串起来,我通常会推荐电子密码锁。这个项目看着不起眼,却把矩阵键盘扫描、按键消抖、状态机设计、动态显示刷新、外设控制这些数字逻辑里的…

2026/10/22 23:57:26

SQL注入原理与防御实战:从数据库安全到参数化查询的完整指南

1. SQL注入到底是什么:从一道“不该通过”的登录说起聊SQL注入之前,先讲一个我早年做项目时遇到的真实案例。某公司内部系统上线没多久,运维反馈后台登录接口响应偶尔很慢,偶尔又很快,而且数据库负载波动明显。一开始怀…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/23 0:02:26

Verilog实现FPGA密码锁:矩阵键盘与状态机设计实战

说实话,这几年接触了不少想入门FPGA的朋友,如果你问哪个项目能一口气把Verilog的核心基本功串起来,我通常会推荐电子密码锁。这个项目看着不起眼,却把矩阵键盘扫描、按键消抖、状态机设计、动态显示刷新、外设控制这些数字逻辑里的…

2026/10/23 0:02:26

数据服务监控运维实战:从指标体系到告警治理与故障排查

周末凌晨两点,手机震了。第一反应是“数据服务挂了”。打开电脑看了下,果然,某张核心报表的数据产出时间已经超过SLA两小时,下游三个业务方连着发来问询。这种场景,做过大数据运维的人都不会陌生。数据服务的监控与运维…

2026/10/23 0:02:26

FreeRTOS任务通知实战详解:内核原理、API与避坑指南

裸机编程切到RTOS之后,任务之间的通信和同步永远是躲不开的坎。前面聊过队列、信号量、互斥锁、事件组,这次把FreeRTOS任务通知(Task Notification)单独拎出来讲透。原因很简单:任务通知是FreeRTOS里最容易用错、也最容…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑