前端周刊 前端开发者技术周刊
在 X 上关注我们 前往 GitHub 仓库

前端周刊 #54:Octane 编译版 React、TanStack 弃 RSC 与 npm 安全治理

Octane 编译版 React、TanStack 弃 RSC、TypeScript 7、npm 安全

本周快讯

技术文章

Octane:编译版 React 编程模型,无 VDOM 的 AOT 响应式

Inferno 作者 Dominic Gannaway 发布 Octane,一款编译时生成响应式的 React-like 框架,彻底抛弃虚拟 DOM。

支持 TSX/JSX 与 TSRX,已集成 TanStack Query、TanStack Router 等常见 React 生态库。社区已开始实验,如 Nextane 将 Next.js Pages Router 跑在 Octane 之上。

对关注「React 语法 + 编译时优化」的团队,这是本周最值得跟踪的新框架方向。

TanStack 为何在官网放弃 React Server Components

Tanner Linsley 用生产数据复盘 tanstack.com 从 RSC 迁回普通 SSR 的完整决策链。

RSC 曾让文档页客户端 JS 减少 153 KB(gzip),但内容管线要经 renderMarkdownToRsc、Flight 序列化、contentRsc: React.ReactNode 等多层边界。自研 @tanstack/markdown(4.9KB)和 @tanstack/highlight(8KB)后,渲染器仅增约 27KB,整体页面仍比 RSC 版更小、TBT 更低。

核心结论:RSC 适合把巨型依赖留在服务端;依赖变小后,架构成本就不值得了。对内容站和多页导航场景,这是 2026 年 RSC 选型的重要参考。

Anders Hejlsberg 演示 TypeScript 7 的 10 倍编译提速

TypeScript 之父 Anders Hejlsberg 在视频中展示 Go 重写的 tsc 在 VS Code 130 万行代码库上的实测效果。

全量构建提速约 10 倍,新版 LSP 语言服务器同步落地。但 7.0 尚无稳定 programmatic API,Vue、Astro、Svelte 等模板类型检查器需暂留 TypeScript 6。

tsc 构建的 React/Node 项目可立即升级;深度依赖编译器 API 的框架团队需等 7.1。

Rust 仍在「吞噬」JavaScript 生态(2026 版)

Lee Robinson 更新 2021 年那篇阅读量最高的文章,盘点 Rust 重写 JS 工具链的最新进展。

Rspack、Biome、Turbopack 已成熟,Bun 正从 Zig 迁移到 Rust。趋势不变:性能敏感的基础设施层越来越多用 Rust 重写,开发者仍写 TypeScript。

对前端工程师,这意味着构建工具会更快,但底层调试可能需要了解一些原生工具链知识。

Domenic Denicola 的 Agentic Coding 工作流(2026 年 7 月)

Promises 标准化推动者、jsdom 作者 Domenic Denicola 分享他脱离大厂后的 AI 辅助开发全套方案。

核心架构:Tailscale + 家用 Linux VM + Claude Code / Codex CLI。VM 跑在 always-on 桌面机上,通过 Tailscale SSH 从笔记本或手机接入,支持 --yolo 模式、并行多工作流、HTTPS 开发服务器预览。

他甚至能在火车上用手机让前沿模型修生产 Bug。对想把 AI 编码代理纳入日常工程流的开发者,这是目前最完整的实战蓝图之一。

2026 年 npm 包安全发布实战指南

postcss、nanoid 作者 Andrey Sitnik 撰写,面向真实发布场景的 npm 安全清单。

涵盖 staged publishing、trusted publishing、2FA 策略,并解释每项措施防住哪类供应链攻击。不是泛泛的安全科普,而是「我发过很多包,这是我现在怎么做」。

在 npm 开始发布时扫描恶意软件的背景下,这篇指南的时效性更强了。

用 Container Timing API 测量组件性能

Harry Roberts(csswizardry)介绍 Chrome 原试中的 Container Timing API,给 DOM 区域打 containertiming 属性即可追踪各内容块的绘制时序。

API 能告诉你组件的各个部分何时绘制,但不会标记「组件何时完全渲染完毕」。适合替代粗粒度的 LCP 观测,做细粒度组件级性能分析。

Chrome 原试阶段,需关注后续标准化进展再决定是否上生产。

SPA 内存泄漏?用 Soak Test 在上线前抓住它

Den Odell 提出用 Playwright 对 SPA 做「浸泡测试」:在单个浏览器上下文中循环执行用户流程 200 次,对比前后的 DOM 节点数和事件监听器数。

2026 年初一项扫描 500 个 React/Vue/Angular 仓库的研究发现,86% 存在未清理的 listener、timer 或 subscription。部分团队被迫每几小时强制刷新页面来规避泄漏。

配合 page.clock 伪造时间和 page.route 模拟网络,几分钟内可压缩数小时的真实使用场景。适合放进夜间 CI,在用户抱怨「开久了就卡」之前发现问题。

// 核心断言:监听器不应增加,DOM 节点增长应在容差内
expect(after.listeners).toBeLessThanOrEqual(baseline.listeners);
expect(after.nodes).toBeLessThan(baseline.nodes + 100);

零运行时 CSS-in-JS 现状盘点(2026 年中)

Linaria 维护者、dx-styles 作者 Anton Evzhakov 梳理零运行时 CSS-in-JS 生态的中期格局。

Styled Components、Emotion 等运行时方案在 SSR 和 bundle 体积上持续承压,Vanilla Extract、Panda CSS、Linaria 等编译时方案成为主流选择。文章对比各方案的 DX、类型安全和框架集成度。

对还在用运行时 CSS-in-JS 的项目,这是评估迁移时机的实用参考。

用 Web Locks API 处理多标签页并发冲突

OLX 工程团队分享如何用浏览器原生 Web Locks API 阻止多个标签页同时写入同一资源。

无需自定义 localStorage 轮询或 BroadcastChannel 协调,API 已在主流浏览器广泛可用。文章附带完整代码示例,覆盖获取锁、释放锁和降级策略。

对多标签协同编辑、购物车同步、离线队列等场景,这是比自建方案更轻量的选择。

工具推荐

scriptc:Vercel 的 TypeScript 原生编译器

Vercel 发布 scriptc,将普通 TypeScript 编译为小型原生二进制,无需 Node、V8 或任何 JS 引擎。

默认静态编译 Tier 1,行为与 Node 字节级一致--dynamic 可选嵌入约 620KB JS 引擎处理 npm 依赖的运行时代码。scriptc coverage 逐语句报告编译覆盖率,未通过编译的代码会给出具体错误码和改写提示。

Hello World 二进制约 320KB,启动约 4ms;Node 需要约 120MB 运行时和 35ms。适合 CLI 工具、边缘脚本和需要极小部署体积的场景。

scriptc build cli.ts -o cli && ./cli
scriptc coverage cli.ts  # 查看静态/动态编译比例

TanStack Markdown & Highlight:4.9KB 解析器 + 8KB 高亮器

TanStack 在放弃 RSC 的同时发布两个自研内容库,替代原先约 358KB 的 Shiki 方案。

@tanstack/markdown 提供可序列化 AST 的 Markdown 解析器;@tanstack/highlight 支持 25 种语言高亮。两者均为 alpha,但已在 tanstack.com 生产环境使用。

对文档站、博客和内容平台,这是「小而全」的 Shiki 替代方案。

Bruno 4.0:开源 HTTP API 客户端

Bruno 4.0 继续作为 Postman 的轻量开源替代,用纯文本文件管理 API 请求集合,天然适合 Git 版本控制。

支持环境变量、脚本前置/后置处理、OAuth 等常见功能。对不喜欢 Postman 云同步、希望请求定义留在代码仓库的团队,Bruno 是成熟选项。

Canvas UI:HTML-in-Canvas 与 WebGL 组件库

Canvas UI 是框架无关的开源组件库,提供 cutting-edge 的 HTML-in-Canvas 和 WebGL 组件,复制粘贴即可使用。

本周在社交媒体获得大量关注,适合需要突破传统 DOM 渲染限制的视觉创意项目。不绑定 React/Vue,可按需集成。

Microcharts:React 词级迷你图表(Sparklines)

Microcharts 将 Edward Tufte 推广的 sparklines 概念带入 React,提供 106 种词级图表类型,可内联在文本旁。

适合仪表盘 KPI、表格内趋势、状态指示等需要高密度信息展示的场景。GitHub 仓库 已开源。

Markdy:动画领域的 Mermaid

Markdy 用声明式语法描述动画与动效,类似 Mermaid 之于图表的定位——不用写 CSS @keyframes 或 JavaScript 动画代码。

示例涵盖入场、循环、路径动画等常见模式。适合快速原型和文档内嵌动效演示。

版本发布

React 19.x 安全补丁:修复 Server Function DoS 漏洞

React 团队发布 19.2.8、19.1.9、19.0.8 三个补丁版本,修复 Server Function 端点的潜在 DoS 漏洞(GHSA-wx67-qw84-cm4g)。

使用 React Server Actions 或 Server Functions 的生产项目应尽快升级。补丁向后兼容,无需改代码。

npm install react@19.2.8 react-dom@19.2.8

MapLibre GL JS 6.0:ESM-only 的矢量地图引擎

MapLibre GL JS 6.0 从 Mapbox GL JS 分叉后的重大版本,仅支持 ESM,要求 WebGL 2,带来全面性能提升。

v5 到 v6 迁移指南 已发布。对使用开源地图方案的项目,需规划 WebGL 2 兼容性检查。

MobX 7.0:瘦身并统一 Proxy 可观察对象

MobX 7.0 移除废弃 API,精简包体积,React 绑定升级至 mobx-react 10.0。

所有可观察对象和数组现在统一使用 Proxy 实现,行为更一致。对仍在 MobX 5/6 的项目,迁移成本较低,收益是更小的 bundle 和更清晰的 API 面。

react-router-hono-server 3.0:秒级启动 Hono 服务端

react-router-hono-server 3.0 让你几秒内为 React Router 应用启动基于 Hono 的服务端,现已适配 React Router v8

适合全栈 React Router 项目需要轻量、边缘友好的服务端方案时快速接入。Hono 的 Web 标准 API 也让部署到 Cloudflare Workers 等环境更顺畅。