本周刊涵盖 React、JavaScript 和 Node.js 三大领域动态。React 方面,TanStack Router 与 Query 结合使用、React 13 周年引发社区讨论、React Router 7.16.0 向 v8 过渡;JavaScript 方面,Deno 2.8 大幅提升 Node 兼容性至 76.4%、npm 分阶段发布上线、Firefox 151 支持 Web Serial;Node.js 方面,v26 正式发布默认启用 Temporal API、流泄漏排障手册、Express 现代化重启。
⚛️ React
将 TanStack Router 与 TanStack Query 结合使用
Dominik 继续他的 TanStack Router 系列,这次将其与 TanStack Query 配对使用。路由缓存是按路由的,而 Query 的缓存是全局的,使得 Query 更适合跨路由共享数据。他介绍了如何将 QueryClient 接入路由上下文,以及禁用路由自身的缓存,让 Query 统一管理数据。
React 迎来 13 岁,有人真的喜欢 React 吗?
React 于 2013 年 5 月 29 日首次发布,如今才刚进入青少年时期,但多年来关于 React 无处不在的抱怨已成老生常谈,David Bushell 一直在收集这些
React 实现 60 FPS 流畅渲染
一份充满技巧的幻灯片,讲解如何在动画数据时从 React 中榨取性能,而无需借助动画库------而是依靠 Canvas、requestAnimationFrame、WebSocket 和 React.memo。
React Data Table:响应式动态表格组件
简洁清爽且灵活。开箱即用地包含列排序和分页等功能。提供大量演示和代码示例。本周发布的 v8.3 专注于本地化支持。
pip-it-up:将任意组件弹出为浮动画中画窗口
一种将任意 UI 组件弹出为浮动
Spoiled 0.5:React realistic 剧透组件
在需要遮挡的内容上方显示粒子云效果,直到内容被揭示。主页本身就是一个实时演示。
React Router 7.16.0 发布,作为 v8 的过渡版本
React Router 7.16.0 作为通往 v8 的
🇳🇱 React Summit 将于 6 月 12 日在阿姆斯特丹举行
React Summit 将于今年 6 月 12 日在阿姆斯特丹举行(JSNation 的次日)。两场会议均可远程参加。
🇺🇸 年度 Chain React React Native 大会
年度 Chain React React Native 大会将于今年 7 月 30-31 日在美国俄勒冈州波特兰市举行。
React Native Reanimated 4.4 发布
在 React Native 中轻松构建流畅动画。v4.4 在 iOS 上新增了 CSS 动画引擎,通过 Core Animation 运行动画,而非 JS 驱动的更新循环。
React Native Gesture Handler 3.0 发布
将平台原生触摸/手势系统暴露给 React Native。现已为 New Architecture 重建,并配备全新的 Touchable 组件。
React Archer 5.0 发布
在 React 中绘制 DOM 元素之间的箭头。v5.0 现已支持 React 19。
Sugar High 1.2 发布
超级轻量(仅 1KB)的 JavaScript 和 JSX 语法高亮器。
React Spring 10.1 发布
这款广受欢迎的 UI 动画库迎来小幅版本更新。
MUI X 9.3 发布
这款广受欢迎的组件库套件发布 9.3 版本。
🟨 JavaScript
npm 包分阶段发布功能正式上线
npm 的
Deno 2.8:迄今为止
重点是 Node.js 兼容性从 Deno 2.7 的 42% 跃升至现在的 76.4%(高于 Bun)。Deno 在各方面都获得巨大性能提升,并取消了添加/安装包时的 npm: 前缀要求。此外还有许多其他改进。
tinykeys 4.0:轻量级现代快捷键绑定库
拥有非常简单直观的 API,页面包含在线演示。
Firefox 151 新增 Web Serial 支持
Firefox 151 新增了 Web Serial 支持,因此你可以从 JS 连接到微控制器、3D 打印机和其他串行连接硬件。
Mozilla 的 Ryan Hunt 告别 asm.js
Mozilla 的 Ryan Hunt 告别 asm.js,因为 Firefox 的 JS 引擎现在默认禁用其优化。
🤖 Modern Web Guidance:专家验证的技能套件
Modern Web Guidance 是一套专家验证的技能,用于引导 Agent 构建现代 Web 体验,例如
TC39 上周举行最新会议------总结即将发布
TC39 上周举行了最新会议------总结报告即将发布。
Storybook 10.4 发布
这款前端组件工坊新增了一流的 TanStack React 支持,以及让 Agent 在复杂应用中设置 Storybook 的能力。
Node.js v26.2.0(Current)发布
Node.js v26.2.0(Current 版本)正式发布。
pnpm 11.3 发布
新增 pnpm stage 命令用于分阶段发布,trustLockfile 用于设置信任策略控制,以及原生的 pkg、repo 和 set-script 命令等更多功能。
npm 12.0 预发布
npm 12.0 预发布版本现已推出。
🟢 Node.js
Node.js 流泄漏的生产环境排障手册
你用了 pipeline() 但流在生产环境中仍然泄漏。本指南涵盖五种能通过测试和规范审查、却在真实流量下崩溃的故障模式,从未被注意到的断开连接到杀死响应但留下上游 fetch 仍在运行的超时。
构建在生产环境中不会崩溃的持久化 AI Agent(网络研讨会)
学习开源的 5 层技术栈,使用 Agentspan 跨 LangGraph、OpenAI 和 Google SDK 运行持久化 AI Agent。
Node.js 24.16.0(LTS)发布
如果 Node 26 太前沿,而 LTS 更符合你的风格,仍然有新特性可供使用,包括 crypto.randomUUIDv7()、util.styleText 接受十六进制颜色,以及 Node 测试运行器中的测试顺序随机化。
使用 AI Agent 将 Express 应用迁移到 Next.js
James(在 Google 从事 Antigravity 工作)演示了如何将遗留的 Express.js 应用现代化为 Next.js App Router 和 TypeScript。用于此目的的技能已分享供任何人使用。
用 AI 更慢地写出更好的代码
一位高产的 JavaScript 开发者表示,LLM 不仅用于快速产出糟糕的代码,它们确实可以帮助你更慢地写出更高质量的代码。
ANSIS 4.3:ANSI 颜色库,现支持超链接
一个支持 ESM 和 CommonJS 的库,用于在 Node、Bun、Deno 和浏览器开发工具中利用 ANSI 转义序列的强大功能为文本着色和设置样式。v4.3 新增了对 OSC 8 终端超链接的支持(现在许多终端模拟器都已支持)。
为你的 Agent 配备每个任务专用的数据库
大多数提供商将你限制为 2 或 3 个 Postgres 项目。ghost 为你的 Agent 提供无限数量的数据库。无项目限制。免费试用。
Express 迎来新篇章和新面貌
有一段时间,Node 长期存在的 Web 框架 Express.js 看起来有点过时,像 Fastify 这样的项目开始接过大旗,但 2024 年开始的重大重启让 Express 重回前沿。现在 Express 的品牌、网站和文档也
Netflix 的 Scott Moss 讲解 AI 工程基础
学习构建可靠的 AI 功能。构建一个 AI 辅助的 Excalidraw 应用,设置 eval 测试框架,掌握上下文工程,并发布真正能工作的 Agent。
Node.js 和 V8 如何保持彼此正常运行
深入探讨 Node 如何与 V8 引擎保持同步的幕后故事。
构建在生产环境中不会崩溃的持久化 AI Agent(网络研讨会)
学习开源的 4 层技术栈,使用 Agentspan 跨 LangGraph、OpenAI 和 Google SDK 运行持久化 AI Agent。
TypeORM 1.0:支持 DataMapper 和 ActiveRecord 的 ORM
这款流行的 TypeScript 优先 ORM 支持所有主流关系型数据库,在多年的 0.3.x 之后终于达到 1.0,带来了清理和现代化工作、INSERT INTO ... SELECT 支持、跨驱动事务隔离级别,以及更流畅的 PostgreSQL 枚举迁移。
Kanel 4.0:从 Postgres 生成 TypeScript 类型
它检查你的数据库并输出可添加到 TypeScript 项目的代码,用于配合 Knex、Zod 或 Kysely 使用(它为每个都有官方扩展)。
将 Claude 或 Cursor 接入 Node 应用的生产错误
AppSignal 的 MCP 服务器将错误、堆栈跟踪和部署上下文提供给你的 AI 编辑器。AI 起草修复方案。你审查并发布。免费 30 天试用。
Node.js 26 的新特性
我们上周介绍了 Node 26 的发布,但这是一次实用导览,介绍你在一个
逐步修复 JavaScript 可观测性
Sentry 团队一直在研究一种方法,用基于运行时诊断通道的方法替代为 JavaScript APM 工具提供支持的猴子补丁。困难的部分?让流行的包加入进来,但这正在发生。
你的递归在欺骗你
ES2015(又称 ES6)规定了尾调用优化,尽管 V8 从未发布它。
Bun v1.3.14 新增图像处理、HTTP/3、HTTP/2 Fetch 等特性
又一个庞大的 Bun 版本。Bun.Image 是一个全新的内置图像处理 API,在许多情况下可以替代 Sharp。Bun 的包管理器新增了全局虚拟存储(类似于 pnpm 的),Bun.serve 实验性地支持基于 QUIC 的 HTTP/3,fetch 获得 HTTP/2 和 HTTP/3 支持。此外还有常规的修复和改进。
如何使用 Node.js 和 Google Cloud Run 发送和接收短信
将容器化的 Node.js 应用部署到 Google Cloud Run,通过 Vonage Messages API 发送短信和处理入站 Webhook。
Syncpack 15.0:JS 单仓中一致的依赖版本管理
一个 CLI 工具(被 Electron、Cloudflare、Vercel 等使用),用于查找和修复整个单仓中的版本不匹配问题,并强制执行版本策略以避免漂移。v15.0 新增对 pnpm 和 Bun catalogs 的支持,并引入了默认 1 天最小发布年龄冷却时间。
Counterfact:基于 OpenAPI 驱动的 API 模拟器
将其指向 OpenAPI 规范,即可获得一个实时的、有状态的 Node 服务器,具有类型化的处理器、热重载和 REPL 以在运行时控制行为。你可以通过 npx 在几秒钟内试用它。
pnpm 11.1 新增更多命令
pnpm bugs 在浏览器中打开包的 bug 跟踪器,pnpm audit signatures 根据密钥验证 ECDSA 注册表签名,并且新增了用于从 GitHub Packages 注册表安装包的 gh: 前缀。
wf:查询 Web 平台特性的 CLI 工具
一个用于查询 Web 平台特性支持、bug 和文档的 CLI 工具,来自 Microsoft 的 Patrick Brosset。你可以安装并作为 wf 运行,或使用 npx 即席使用。
Node.js 26.0(Current)发布
它来了!完整包含默认启用的 Temporal API、V8 14.6(向 Map.prototype.getOrInsert() 等 map
Memetria K/V:高效的 Redis 和 Valkey 托管服务
Memetria K/V 为 Node.js 应用托管 Redis OSS 和 Valkey,具有大键跟踪和详细分析功能。
伦敦 Node.js 协作峰会报告
Node 团队上个月在伦敦举行的最新面对面峰会讨论了什么,包括 Node 的新发布计划(从 Node 27 开始)、James Snell 的可迭代流 API(又称 node:stream/iter)、OpenTelemetry 支持、如何处理 AI 对 Node 的贡献、libuv v2 等等。
Rolldown 1.0:高性能 JS 打包工具
它稳定、快速、可用于生产环境,并且你可以获得 esbuild 般的速度和 Rollup 插件兼容性。最近的 Node 版本已经原生处理 .ts 文件、ESM 和 JSON 导入,所以 Rolldown 的真正优势在于发布时,当你想要尽可能小的 tree-shaken 运行时产物时。
为什么迁移到 Valibot?
Valibot 是一个轻量级、模块化的 TypeScript 模式验证库,是 Zod 等的替代品。v1.4.0 也刚刚发布。
html-to-text 10.0:高级 HTML 转文本转换器
使用多种技术将即使是复杂的 HTML 转换为纯文本(但保留一些格式,例如表格的格式)。v10 使项目达到了现代标准。
过时的 API 响应始于过时的数据源
TimescaleDB 扩展 Postgres 以对实时数据进行分析。无需流水线,无需第二个数据库。提供 1000 美元信用额度起步。
PM2 7.0:Node.js 生产进程管理器
这款长期存在的基于 Node 的生产进程管理器已被重构,删除了大量外部依赖。它还扩展了 Bun 运行时在集群模式中的支持以及监控代理。
Find My Way 9.6:使用基数树的高速 HTTP 路由器
一个
opentype.js:读写 OpenType 字体
直接访问字母字形。具有广泛的 WOFF、OTF 和 TTF 支持,并支持连字、字距调整和表情符号。除了为文本创建路径外,你还可以从头开始创建和保存自己的自定义字体。