Octane:React 编程模型,编译即得
Octane – React's programming model, compiled

Octane 是 Inferno 的继任者,它将 React 的 hooks、Suspense 和 actions 等编程模型在编译阶段直接优化,彻底抛弃了虚拟 DOM。开发者无需再遵守繁琐的 hooks 规则,编译器会自动追踪依赖,让 hooks 可以安全地置于条件判断或提前返回之后。Octane 保留了 React 熟悉的使用体验,支持渐进式迁移,允许在现有 React 19 应用中通过 OctaneCompat 逐步替换组件。其性能表现卓越,在多项基准测试中优于 React 19 和 Preact,同时提供了完善的 CLI 工具链来检测和修复配置问题,让高性能成为应用的自然属性,而非需要额外思考的负担。
快速应该是你的应用给人的感觉,而不是你不得不采用的一种新思维方式。
HN 评论区
47- rco8786
> 讲究实测,而非氛围感
考虑到这一页的文案里充满了“氛围感”的暗示,这多少有点讽刺。这个项目看起来挺不错,可惜几乎每句话都透着 Claude 的指纹。
- Guillaume86
只是扫了一眼,所以我可能完全理解错了,欢迎无视。但如果我理解得没错,tsrx 只是普通 tsx 代码的语法糖,并没有带来任何新功能?
如果是这样的话:我认为在 Octane 中引入 tsrx 有点混淆视听,让我更犹豫要不要尝试(即使它是可选的)。
让 tsx 文件更易读这个想法可能很有趣,但如果是这样,它应该作为一个独立的项目存在。也许可以在 Octane 文档里加一个语言切换选项,再写一个关于 tsrx 兼容性的页面。这样,如果人们对新语法感兴趣,可以自行查阅,而文档本身也能保持专注。
- adzm
一个有趣的功能是这一点:
> 当前状态获取器。useState 和 useReducer 返回 [state, update, getState],这样延迟回调可以读取最新值,而不是过时的闭包捕获值。
目前 React 中有几种变通方案,使用其他状态管理库也能让你非响应式地访问当前状态,但在某些情况下这确实是个大帮助。
举个例子,一个传递给所有子元素的回调/事件,需要在运行时访问当前状态。因此,通常需要在状态变化时,用新捕获的状态重新创建它(在 useCallback 中),这会导致所有子组件重新渲染。在回调中非响应式地访问当前状态可以完全避免这个问题。
有一些技巧可以修复这个问题,比如将更新后的回调包装在 ref 中,并通过事件更新它(例如 https://usehooks-ts.com/react-hook/use-event-callback 中实现的 useEventCallback,各种地方都有类似实现),然后返回一个指向调用该保存函数的稳定引用。不过我总是担心这样做是否有副作用。
- vivzkestrel
- 请每天在 HN 上发布 10 个新的前端框架
- 比起 HN 上那些 AI、GPT、LLM、Agent 的东西,我随时都更乐意看这个
- ricardobeat
如果去掉那股 AI 味,看起来会更有吸引力。如果你是在搞“氛围编程”,那就帮自己个忙,自己写网站文案吧——这是你的项目唯一能证明有人类参与或监督的证据。