沉寂 600 多天后,React 憋了个大招

  • 2024-02-26
    北京
  • 本文字数:3510 字

    阅读完需:约 12 分钟

React 19 革新前端开发,Instagram 已率先尝鲜。

 

自 2022 年 6 月发布 React 18.2 以来(React 18 于 2022 年 3 月发布),React 团队一直没有发布新的稳定版本。沉寂 600 多天后,近日,React 团队表示他们将要发布最新的“大版本”——React 19,目前他们正在为正式发布做准备工作。据悉,React 19 将专注于提高构建复杂 Web 应用程序的生产力、性能与开发者体验。

 

值得一提的是,在上一个大版本中,服务器组件(Server Component)这个最大的特性被描述为“实验性的”,如今,React 团队已经将 React Compiler 描述为“不再是一个研究项目”。此外,React 团队还介绍了下一个大版本 React 19 的特性,其中包括 Actions(正式名称为 Server Actions)、资产加载和 Web 组件支持。

 

根据 React Conf 2021 大会和官方 React 博客上的公告,React 19 仍处于早期开发与测试阶段,很可能会在 2024 年内的适当时候推出。React 团队希望保障向下兼容性,也想让社区能有时间为潜在的各类重大变更做好准备。

React 19 新增了哪些功能?

 

从精致的并发渲染到新颖的状态处理机制,React 19 尝试进一步增强性能与开发者体验。具体来说,React 19 引入了一系列令人兴奋的改进,新版本的主要亮点包括:

 

  • 新的 React Compiler 编译器:升级后的编译器带来 skip mode 和 selective hydration 选择性水合等性能优化选项,可帮助应用程序提升加载速度。

  • 协调改进:startTransition API 等更新能够将工作拆分成多个块,使得复杂 UI 的响应速度更快。

  • Strict mode 严格模式检查:新的严格相等性检查和删除已弃用 API 等举措,将确保应用程序始终遵循最佳实践。

  • 水合与 SSR 变更:Fiber 树复制与 useId hook 能够更好地支持在服务器端渲染的应用程序。

 

下面,我们来具体探讨这些新近落地的附加功能,深入了解它们会如何重塑动态用户界面的开发格局。

1. React Compiler

 

React 团队已经将 React Compiler 描述为“不再是一个研究项目”。根据该团队发布的最新消息,该编译器现在“已交付 Instagram.com 生产应用”,这也标志着 React 功能的又一重大进步。

 

根据帖子介绍,该团队已经在“加速把它扩展到 Meta 的其他业务面并推动开源”,但没有公布正式发布日期。尽管如此,React 团队 Vercel 工程师 Andrew Clark 在推特上写道,“到 2024 年底”,开发人员“可能就永远不需要”包括 useMemo 在内的 API 了。

React Compiler 通过引入优化编译器解决了状态变量时过度重新渲染的问题。与手动记忆化(manual memoization)不同,这款编译器会在状态发生变化时自动对 UI 中的特定部分进行重新渲染,从而消除代码混乱。React Compiler 遵循 JavaScript 与 React 运行规则,可保障安全性与性能。开发人员能够使用 Strict Mode 严格模式与 React ESLint 插件验证编写的代码。

 

根据该团队发布的最新消息,这款编译器已经在 Instagram.com 上得到生产应用,即将被整合进 Meta 界面当中,后续开源版本亦在筹备当中。

2. Actions

 

另一个新特性是 Action,用于管理从客户端发送到服务器的数据,比如表单元素。该团队解释说,“当使用 action 时,React 将为你管理数据提交的生命周期,提供像 useFormStatus 和 useFormState 这样的钩子来访问表单动作的当前状态和响应”。

 

Actions 允许开发者将函数传递给 DOM 元素,例如:

 

<form action={search}>  <input name="query" />  <button type="submit">Search</button></form>
复制代码

 

这项操作函数可以灵活实现同步或者异步操作。开发者能够使用标准 JavaScript 在客户端上定义该函数,也可使用“use server”指令在服务器上定义。React 则负责在使用某项操作时管理数据提交生命周期,提供 useFormStatus 和 useFormState 等 hooks 来访问当前表单操作的状态与响应。

 

import { useFormStatus } from "react-dom";import action from './actions';function Submit() {  const status = useFormStatus();  return <button disabled={status.pending}>Submit</button>}export default function App() {  return (    <form action={action}>      <Submit />    </form>  );}
复制代码

 

import { useFormState } from "react-dom";async function increment(previousState, formData) {  return previousState + 1;}function StatefulForm({}) {  const [state, formAction] = useFormState(increment, 0);  return (    <form>      {state}      <button formAction={formAction}>Increment</button>    </form>  )}
复制代码

 

默认情况下,Actions 会在转换内提交,从而在处理过程中保持当前页面的交互性。通过支持异步函数,在转换中引入 async/awat 可以显示待处理的 UI,并利用 isPending 状态在异步请求(例如数据获取)期间发出正在进行的处理信号。

3. React Canary

 

Canary 标志着 React 在开发方法层面的转变。在以往 Meta 内部研究和开发功能的传统方法不同,Canary 强调通过社区协作公开构建以完善 React Labs 系列博文中介绍的功能。这种方法将确保用户在早期开发阶段就了解即将推出的功能,全程关注并逐步适应功能的最终版本,而不再直接通过稳定版发布硬性接受完善的功能选项。

 

React Canary 所涵盖的功能包括 React Server Components 服务组件、Asset Loading 资产加载、Document Metadata 文档元数据与 Actions 操作函数等。

 

指令

 

“use client”与“use server”是为全栈 React 框架设计的捆绑器功能。它们负责标记两种环境之间的“分割点”:“use client”指示捆绑器生成〈script〉标签(例如 Astro Island),而“use server”则告知捆绑器生成 POST 端点(例如 tRPC Mutations)。二者配合将编写出可复用组件,借此将客户端交互与相关服务器端逻辑结合起来。

 

Document Metadata 文档元数据

 

React 19 新曾对组件树内任意位置上渲染、<meta> 和元数据 <link> 标记的支持能力。它们在所有环境中均以相同方式实现,包括纯客户端代码、SSR 与 RSC。这将为 React Helmet 等创新功能库提供了内置支持。</span></p><p data-type="paragraph"><span style="color: #494949"> </span></p><p data-type="paragraph"><strong><span style="color: #494949">Actions</span></strong></p><p data-type="paragraph"><span style="color: #494949"> </span></p><p data-type="paragraph"><span style="color: #494949">Actions 操作函数用于管理从客户端到服务器的数据发送。开发者可以向〈form/〉等元素添加操作函数,使用 useFormStatus 访问状态,使用 useFormState 处理结果,并使用 useOptimistic 积极更新 UI。</span></p><p data-type="paragraph"><span style="color: #494949"> </span></p><div data-type="codeblock"><div data-codeblock-wrap><div data-codeblock-codes><pre lang="text" data-origin="pm_code_preview"><code data-type=codeline><span class="hljs-keyword">import</span> { useOptimistic } <span class="hljs-keyword">from</span> <span class="hljs-string">'react'</span>;</code><code data-type=codeline><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">AppContainer</span>(<span class="hljs-params"></span>) </span>{</code><code data-type=codeline> <span class="hljs-keyword">const</span> [optimisticState, addOptimistic] = useOptimistic(</code><code data-type=codeline> state,</code><code data-type=codeline> <span class="hljs-comment">// updateFn</span></code><code data-type=codeline> (currentState, optimisticValue) => {</code><code data-type=codeline> <span class="hljs-operator">/</span><span class="hljs-operator">/</span> <span class="hljs-keyword">merge</span> <span class="hljs-keyword">and</span> <span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> state</code><code data-type=codeline> <span class="hljs-comment">// with optimistic value</span></code><code data-type=codeline> }</code><code data-type=codeline> );</code><code data-type=codeline>}</code></pre></div><div data-codeblock-copy>复制代码</div><div data-codeblock-index><div data-codeblock-number="1"></div><div data-codeblock-number="2"></div><div data-codeblock-number="3"></div><div data-codeblock-number="4"></div><div data-codeblock-number="5"></div><div data-codeblock-number="6"></div><div data-codeblock-number="7"></div><div data-codeblock-number="8"></div><div data-codeblock-number="9"></div><div data-codeblock-number="10"></div><div data-codeblock-number="11"></div></div></div></div><p data-type="paragraph"><span style="color: #494949"> </span></p><p data-type="paragraph"><span style="color: #494949">如何使用 React Canary:</span></p><p data-type="paragraph"><span style="color: #494949"> </span></p><div data-type="codeblock"><div data-codeblock-wrap><div data-codeblock-codes><pre lang="text" data-origin="pm_code_preview"><code data-type=codeline><span class="hljs-comment">//for npm </span></code><code data-type=codeline>npm install <span class="hljs-symbol">react@</span>canary react-<span class="hljs-symbol">dom@</span>canary</code><code data-type=codeline><span class="hljs-comment">//for yarn</span></code><code data-type=codeline>yarn <span class="hljs-keyword">add</span> react<span class="hljs-variable">@canary</span> react<span class="hljs-operator">-</span>dom<span class="hljs-variable">@canary</span></code></pre></div><div data-codeblock-copy>复制代码</div><div data-codeblock-index><div data-codeblock-number="1"></div><div data-codeblock-number="2"></div><div data-codeblock-number="3"></div><div data-codeblock-number="4"></div></div></div></div><p data-type="paragraph"><span style="color: #494949"> </span></p><p data-type="paragraph"><span style="color: #494949">相较于直接修改当前生产依赖项,为其创建专用的测试环境显然更加可取。这种方法既能为开发者提供实践反馈,也不会导致实时应用程序遭遇中断。</span></p><p data-type="paragraph"><span style="color: #494949"> </span></p><p data-type="paragraph"><span style="color: #494949">至于 React Server Component 呢?最新发布的信息中并没有提及,文档仍然将其描述为实验性的,但 Vercel Next.js 中已经包含。官方建议开发人员使用一种框架,团队似乎更愿意在这种情况下考虑服务器组件。文档中写道,“我们希望在一两年内,本页上列出的所有框架都能完全支持这些特性”,包括服务器组件。</span></p><h2 data-type="heading" data-id="heading4"><span style="color: #494949">React 开发者需要做哪些准备?</span></h2><p data-type="paragraph"><span style="color: #494949"> </span></p><p data-type="paragraph"><span style="color: #494949">总的来说,React 19 是一次令人兴奋的更新,带来众多新功能。通过规划和测试,大多数应用程序应该可以顺利完成升级。React 团队也在努力平衡新功能与稳定性,帮助开发人员建立起卓越的用户体验。</span></p><p data-type="paragraph"><span style="color: #494949"> </span></p><p data-type="paragraph"><span style="color: #494949">目前,React 团队仍在权衡应在 19 版本中引入哪些调整。以下是网友推测可能的后续版本升级方向:</span></p><p data-type="paragraph"><span style="color: #494949"> </span></p><ul data-type="bulletedlist"><li data-type="listitem"><p data-type="paragraph"><span style="color: #494949">React 20 将引入新的 Profiler API 以进行性能跟踪。请提前阅读说明文档并做好准备。</span></p></li><li data-type="listitem"><p data-type="paragraph"><span style="color: #494949">后续 React 版本将不断增强严格模式,因此强烈建议大家即使并非强制要求,也应采用严格模式检查。</span></p></li><li data-type="listitem"><p data-type="paragraph"><span style="color: #494949">React 团队计划继续改进开发者体验、DevTools、测试等,感兴趣的朋友可以关注官方博客并随时获取动态。</span></p></li></ul><p data-type="paragraph"><span style="color: #494949"> </span></p><p data-type="paragraph"><span style="color: #494949">在最终结果发布前,开发者可以通过以下方式为新版本做好准备:</span></p><p data-type="paragraph"><span style="color: #494949"> </span></p><ul data-type="bulletedlist"><li data-type="listitem"><p data-type="paragraph"><span style="color: #494949">关注涉及潜在重大变更的 React 博文和说明文档。</span></p></li><li data-type="listitem"><p data-type="paragraph"><span style="color: #494949">首先在非关键项目上试用 React 19 beta。</span></p></li><li data-type="listitem"><p data-type="paragraph"><span style="color: #494949">提前更新 React 技能与工具。</span></p></li><li data-type="listitem"><p data-type="paragraph"><span style="color: #494949">关注关于稳定性和候选版本的公告。</span></p></li></ul><p data-type="paragraph"><span style="color: #494949"> </span></p><p data-type="paragraph"><span style="color: #494949">可能发生重大变化的关键领域,包括错误边界、生命周期方法 API,以及从渲染属性到 hooks 的各类变更。更多详细信息将在发布期间逐步公开,但 React 团队将努力避免那些不必要的重大变更。</span></p><p data-type="paragraph"><span style="color: #494949"> </span></p><p data-type="paragraph"><span style="color: #494949">参考链接:</span></p><p data-type="paragraph"><a href="https://react.dev/blog/2024/02/15/react-labs-what-we-have-been-working-on-february-2024" title data-type="link">https://react.dev/blog/2024/02/15/react-labs-what-we-have-been-working-on-february-2024</a></p><p data-type="paragraph"><a href="https://dev.to/gbengacode/react-19-is-here-oha" title data-type="link">https://dev.to/gbengacode/react-19-is-here-oha</a></p><p data-type="paragraph"><a href="https://daily.dev/blog/react-19-everything-you-need-to-know-in-one-place" title data-type="link">https://daily.dev/blog/react-19-everything-you-need-to-know-in-one-place</a></p><p data-type="paragraph"><a href="https://devclass.com/2024/02/22/react-19-introduced-and-forget-compiler-now-in-production-at-instagram-but-not-yet-widely-available/" title data-type="link">https://devclass.com/2024/02/22/react-19-introduced-and-forget-compiler-now-in-production-at-instagram-but-not-yet-widely-available/</a></p></div></div><!----><!--]--><span></span></div><!----></article><span></span><!--]--><div class=""><!--[--><div class="comment-skeleton" data-v-66ad80be><div class="skeleton-header" data-v-66ad80be><div class="skeleton-title-bar" data-v-66ad80be></div><div class="skeleton-title-text" data-v-66ad80be></div><div class="skeleton-title-number" data-v-66ad80be></div></div><div class="skeleton-form" data-v-66ad80be><div class="skeleton-input" data-v-66ad80be></div><div class="skeleton-button" data-v-66ad80be></div></div><div class="skeleton-list" data-v-66ad80be><!--[--><div class="skeleton-item" data-v-66ad80be><div class="skeleton-avatar" data-v-66ad80be></div><div class="skeleton-content" data-v-66ad80be><div class="skeleton-username" data-v-66ad80be></div><div class="skeleton-text" data-v-66ad80be><!--[--><div class="skeleton-line" data-v-66ad80be></div><div class="skeleton-line" data-v-66ad80be></div><div class="skeleton-line" data-v-66ad80be></div><!--]--></div><div class="skeleton-actions" data-v-66ad80be><div class="skeleton-action-item" data-v-66ad80be></div><div class="skeleton-action-item" data-v-66ad80be></div><div class="skeleton-action-item" data-v-66ad80be></div></div></div></div><!--]--></div></div><!--]--><!--[--><!----><span></span><!--]--></div></div><div class="_content-side_13g2e_76" is-immersed="false"><!--[--><!--[--><!--]--><!--]--></div></div><span></span></div><!--]--><span></span><div id="check-bottom-bar"></div><div class="_layout-footer_1wbyk_401"><div class="footer" data-v-bd0d3efe><!--[--><ul class="layout-content" data-v-bd0d3efe><li class="theme" data-v-bd0d3efe><div class="logo" data-v-bd0d3efe><img src="https://static001.geekbang.org/static/web/nuxt/www.infoq.cn/logo.BJF4WFeC.png" alt="logo" data-v-bd0d3efe><p data-v-bd0d3efe>促进软件开发及相关领域知识与创新的传播</p></div></li><!--[--><li data-v-bd0d3efe><dl class="footer-nav" data-v-bd0d3efe><dt data-v-bd0d3efe></dt><!--[--><dd data-v-bd0d3efe><!----><a href="https://www.infoq.cn/about" target="_blank" rel="noopener nofollow" data-v-bd0d3efe>关于我们</a></dd><dd data-v-bd0d3efe><!----><a href="https://www.infoq.cn/contribute" target="_blank" rel="noopener nofollow" data-v-bd0d3efe>我要投稿</a></dd><dd data-v-bd0d3efe><!----><a href="https://www.geekbang.org/partner" target="_blank" rel="noopener nofollow" data-v-bd0d3efe>合作伙伴</a></dd><dd data-v-bd0d3efe><!----><a href="https://www.lagou.com/gongsi/j43775.html" target="_blank" rel="noopener nofollow" data-v-bd0d3efe>加入我们</a></dd><dd data-v-bd0d3efe><!----><a href="https://infoq.cn/official/account" target="_blank" rel="noopener nofollow" data-v-bd0d3efe>关注我们</a></dd><!--]--></dl></li><li data-v-bd0d3efe><dl class="footer-nav" data-v-bd0d3efe><dt data-v-bd0d3efe>联系我们</dt><!--[--><dd data-v-bd0d3efe><!----><a href="mailto:editors@geekbang.com" target="_blank" rel="noopener nofollow" data-v-bd0d3efe>内容投稿:editors@geekbang.com</a></dd><dd data-v-bd0d3efe><!----><a href="mailto:hezuo@geekbang.com" target="_blank" rel="noopener nofollow" data-v-bd0d3efe>业务合作:hezuo@geekbang.com</a></dd><dd data-v-bd0d3efe><!----><a href="mailto:feedback@geekbang.com" target="_blank" rel="noopener nofollow" data-v-bd0d3efe>反馈投诉:feedback@geekbang.com</a></dd><dd data-v-bd0d3efe><!----><a href="mailto:zhaopin@geekbang.com" target="_blank" rel="noopener nofollow" data-v-bd0d3efe>加入我们:zhaopin@geekbang.com</a></dd><dd data-v-bd0d3efe><!----><span data-v-bd0d3efe>联系电话:010-64738142</span></dd><dd data-v-bd0d3efe><!----><span data-v-bd0d3efe>地址:北京市朝阳区望京北路9号2幢7层A701</span></dd><!--]--></dl></li><li data-v-bd0d3efe><dl class="footer-nav" data-v-bd0d3efe><dt data-v-bd0d3efe>InfoQ 近期会议</dt><!--[--><dd data-v-bd0d3efe><!----><a href="https://qcon.infoq.cn/2026/beijing?utm_source=infoq&utm_medium=footer" target="_blank" rel="noopener nofollow" data-v-bd0d3efe>北京 · QCon 全球软件开发大会 2026.4.16-18</a></dd><dd data-v-bd0d3efe><!----><a href="https://aicon.infoq.cn/2026/shanghai?utm_source=infoq&utm_medium=footer" target="_blank" rel="noopener nofollow" data-v-bd0d3efe>上海 · AICon 全球人工智能开发与应用大会 2026.6.26-27</a></dd><!--]--></dl></li><li data-v-bd0d3efe><dl class="footer-nav" data-v-bd0d3efe><dt data-v-bd0d3efe>全球 InfoQ</dt><!--[--><dd data-v-bd0d3efe><img src="https://static001.infoq.cn/resource/image/55/38/55cd81623e36f5ab7a7db74d60b74838.png" alt="会议图片" data-v-bd0d3efe><a href="https://www.infoq.com/" target="_blank" rel="noopener nofollow" data-v-bd0d3efe>InfoQ En</a></dd><dd data-v-bd0d3efe><img src="https://static001.infoq.cn/resource/image/95/13/95fe851c02c86120e9037eada6a36d13.png" alt="会议图片" data-v-bd0d3efe><a href="https://www.infoq.com/jp/" target="_blank" rel="noopener nofollow" data-v-bd0d3efe>InfoQ Jp</a></dd><dd data-v-bd0d3efe><img src="https://static001.infoq.cn/resource/image/2a/3e/2aa440b6d94e94f64c508f16da38933e.png" alt="会议图片" data-v-bd0d3efe><a href="http://www.infoq.com/fr/" target="_blank" rel="noopener nofollow" data-v-bd0d3efe>InfoQ Fr</a></dd><dd data-v-bd0d3efe><img src="https://static001.infoq.cn/resource/image/4e/1e/4e737ce82bc7c8a1c2f2307bcea9a11e.png" alt="会议图片" data-v-bd0d3efe><a href="http://www.infoq.com/br/" target="_blank" rel="noopener nofollow" data-v-bd0d3efe>InfoQ Br</a></dd><!--]--></dl></li><!--]--></ul><!--]--><div class="copyright" data-v-bd0d3efe> Copyright © 2026, Geekbang Technology Ltd. All rights reserved. 极客邦控股(北京)有限公司 | <a target="_blank" class="icp" href="https://beian.miit.gov.cn/" data-v-bd0d3efe>京 ICP 备 16027448 号 - 5</a><a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010502039052" data-v-bd0d3efe><img src="data:image/png;base64,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" alt="京公网安备" data-v-bd0d3efe><span data-v-bd0d3efe>京公网安备 11010502039052号</span></a><a target="_blank" class="icp" href="https://time.geekbang.org/hybrid/certificates" data-v-bd0d3efe> | 产品资质</a></div></div></div></div><span></span></div></div></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="true" id="__NUXT_DATA__">[["ShallowReactive",1],{"data":2,"state":1670,"once":1672,"_errors":1673,"serverRendered":739,"path":1675,"pinia":1676},["ShallowReactive",3],{"navConfig":4,"articleDetail":731,"headerMenuList":1574},{"notice":5,"header":8,"footer":333,"bus":399,"web":699},{"content":6,"end_time":7,"link":6,"start_time":7,"time_now":7},"",0,[9,65,88,119,123,151,153,178,204,230,257,286,307,312,316,320,324,328],{"alias":10,"child_list":11,"icon":6,"id":63,"link":6,"name":64,"type":15}," industrynews",[12,16,20,24,28,31,35,39,43,47,50,53,57,60],{"id":13,"name":14,"alias":6,"type":15},1164,"英特尔",1,{"id":17,"name":18,"alias":19,"type":15},19,"Google","google",{"id":21,"name":22,"alias":23,"type":15},20,"微软","Microsoft",{"id":25,"name":26,"alias":27,"type":15},26,"亚马逊云科技","AWS",{"id":29,"name":30,"alias":30,"type":15},42,"Meta",{"id":32,"name":33,"alias":34,"type":15},54,"百度","baidu",{"id":36,"name":37,"alias":38,"type":15},61,"阿里巴巴","alibaba",{"id":40,"name":41,"alias":42,"type":15},78,"腾讯","tencent",{"id":44,"name":45,"alias":46,"type":15},145,"华为","huawei",{"id":48,"name":49,"alias":6,"type":15},1167,"字节跳动",{"id":51,"name":52,"alias":6,"type":15},1215,"用友",{"id":54,"name":55,"alias":56,"type":15},1217,"英伟达","NVIDIA",{"id":58,"name":59,"alias":59,"type":15},1218,"OpenAI",{"id":61,"name":62,"alias":6,"type":15},1221,"Snowflake",147,"企业动态",{"alias":6,"child_list":66,"icon":6,"id":86,"link":6,"name":87,"type":15},[67,71,74,77,80,83],{"id":68,"name":69,"alias":70,"type":15},160,"医疗","medical",{"id":72,"name":73,"alias":6,"type":15},1169,"银行",{"id":75,"name":76,"alias":6,"type":15},1170,"证券",{"id":78,"name":79,"alias":6,"type":15},1171,"保险",{"id":81,"name":82,"alias":6,"type":15},1172,"汽车",{"id":84,"name":85,"alias":6,"type":15},1173,"工业",1168,"行业深度",{"alias":89,"child_list":90,"icon":6,"id":117,"link":6,"name":118,"type":15},"AI&LLM",[91,95,99,102,105,108,111,114],{"id":92,"name":93,"alias":94,"type":15},125,"自动驾驶","Autopilot",{"id":96,"name":97,"alias":98,"type":15},127,"计算机视觉"," computing-vision",{"id":100,"name":101,"alias":6,"type":15},1183,"生成式 AI",{"id":103,"name":104,"alias":6,"type":15},1184,"AI 工程化",{"id":106,"name":107,"alias":6,"type":15},1185,"机器学习/深度学习",{"id":109,"name":110,"alias":6,"type":15},1186,"自然语言处理",{"id":112,"name":113,"alias":6,"type":15},1223,"具身智能",{"id":115,"name":116,"alias":6,"type":15},1187,"芯片&算力",31,"AI&大模型",{"alias":6,"child_list":120,"icon":6,"id":121,"link":6,"name":122,"type":15},null,1207,"出海",{"alias":6,"child_list":124,"icon":6,"id":149,"link":6,"name":150,"type":15},[125,129,133,137,140,143,146],{"id":126,"name":127,"alias":128,"type":15},29,"数据库","Database",{"id":130,"name":131,"alias":132,"type":15},32,"编程语言","programing-languages",{"id":134,"name":135,"alias":136,"type":15},81,"区块链","Blockchain",{"id":138,"name":139,"alias":6,"type":15},1175,"中间件",{"id":141,"name":142,"alias":6,"type":15},1176,"操作系统",{"id":144,"name":145,"alias":6,"type":15},1177,"5G/IoT",{"id":147,"name":148,"alias":6,"type":15},1178,"音视频(后端)",1174,"后端",{"alias":6,"child_list":152,"icon":6,"id":115,"link":6,"name":116,"type":15},[],{"alias":154,"child_list":155,"icon":6,"id":176,"link":6,"name":177,"type":15},"architecture",[156,160,164,167,170,173],{"id":157,"name":158,"alias":159,"type":15},12,"SOA","soa",{"id":161,"name":162,"alias":163,"type":15},70,"微服务","microservice",{"id":165,"name":166,"alias":6,"type":15},1179,"业务架构",{"id":168,"name":169,"alias":6,"type":15},1180,"框架",{"id":171,"name":172,"alias":6,"type":15},1181,"领域驱动设计",{"id":174,"name":175,"alias":6,"type":15},1182,"多云/混合云",8,"架构",{"alias":179,"child_list":180,"icon":6,"id":202,"link":6,"name":203,"type":15},"bigdata",[181,184,187,190,193,196,199],{"id":182,"name":183,"alias":6,"type":15},1188,"DataOps",{"id":185,"name":186,"alias":6,"type":15},1189,"数据集成",{"id":188,"name":189,"alias":6,"type":15},1190,"DataMesh",{"id":191,"name":192,"alias":6,"type":15},1191,"数据编织",{"id":194,"name":195,"alias":6,"type":15},1192,"数据湖仓",{"id":197,"name":198,"alias":6,"type":15},1193,"在离线混部",{"id":200,"name":201,"alias":6,"type":15},1194,"实时计算",15,"大数据",{"alias":6,"child_list":205,"icon":6,"id":228,"link":6,"name":229,"type":15},[206,210,213,216,219,222,225],{"id":207,"name":208,"alias":209,"type":15},21,"安全","Security",{"id":211,"name":212,"alias":212,"type":15},120,"AIOps",{"id":214,"name":215,"alias":215,"type":15},1165,"BizDevOps",{"id":217,"name":218,"alias":6,"type":15},1196,"DevOps & 平台工程",{"id":220,"name":221,"alias":6,"type":15},1197,"FinOps",{"id":223,"name":224,"alias":6,"type":15},1198,"研发效能",{"id":226,"name":227,"alias":6,"type":15},1199,"可观测",1195,"软件工程",{"alias":231,"child_list":232,"icon":6,"id":255,"link":6,"name":256,"type":15},"cloud-computing",[233,237,240,243,246,249,252],{"id":234,"name":235,"alias":236,"type":15},106,"云原生","CloudNative",{"id":238,"name":239,"alias":239,"type":15},119,"Serverless",{"id":241,"name":242,"alias":6,"type":15},1200,"服务革新",{"id":244,"name":245,"alias":6,"type":15},1201,"云安全",{"id":247,"name":248,"alias":6,"type":15},1202,"云端开发",{"id":250,"name":251,"alias":6,"type":15},1203,"芯片与网络",{"id":253,"name":254,"alias":6,"type":15},1216,"低代码",11,"云计算",{"alias":6,"child_list":258,"icon":6,"id":284,"link":6,"name":285,"type":15},[259,263,266,269,272,275,278,281],{"id":260,"name":261,"alias":262,"type":15},141,"小程序","applets",{"id":264,"name":265,"alias":265,"type":15},1144,"HarmonyOS",{"id":267,"name":268,"alias":6,"type":15},1209,"Android/iOS",{"id":270,"name":271,"alias":6,"type":15},1210,"架构/框架",{"id":273,"name":274,"alias":6,"type":15},1211,"工程化",{"id":276,"name":277,"alias":6,"type":15},1212,"跨端开发",{"id":279,"name":280,"alias":6,"type":15},1213,"性能优化",{"id":282,"name":283,"alias":6,"type":15},1214,"音视频(前端)",1208,"大前端",{"alias":6,"child_list":287,"icon":6,"id":305,"link":6,"name":306,"type":15},[288,292,296,299,302],{"id":289,"name":290,"alias":291,"type":15},17,"开源","opensource",{"id":293,"name":294,"alias":295,"type":15},1131,"技术选型","technology-selection",{"id":297,"name":298,"alias":6,"type":15},1160,"数字化转型",{"id":300,"name":301,"alias":6,"type":15},1205,"数字人才培养",{"id":303,"name":304,"alias":6,"type":15},1206,"团队搭建",1204,"管理/文化",{"child_list":308,"icon":6,"id":7,"link":309,"name":310,"type":311},[],"https://www.infoq.cn/content-center","企业服务案例",3,{"child_list":313,"icon":6,"id":7,"link":314,"name":315,"type":311},[],"https://time.geekbang.org","极客时间",{"child_list":317,"icon":6,"id":7,"link":318,"name":319,"type":311},[],"https://u.geekbang.org/?utm_source=infoq_web&utm_medium=menu&utm_term=infoqwebmenu","极客时间训练营",{"child_list":321,"icon":6,"id":7,"link":322,"name":323,"type":311},[],"https://b.geekbang.org/?utm_source=infoqweb&utm_medium=menu&gk_source=infoqwebmenu_2024092401","企业培训",{"child_list":325,"icon":6,"id":7,"link":326,"name":327,"type":311},[],"https://tgo.infoq.cn/","高端学员",{"child_list":329,"icon":330,"id":7,"link":331,"name":332,"type":311},[],"https://static001.infoq.cn/resource/image/52/fa/5248de588832bcf63b5a9570caa2b0fa.png","https://www.infoq.cn/app/download?utm_source=infoq_nav_web&utm_medium=infoq_nav_web&utm_term=infoq_nav_web","App下载",[334,352,371,380],{"list":335,"name":351},[336,339,342,345,348],{"name":337,"link":338,"image":6},"关于我们","https://www.infoq.cn/about",{"name":340,"link":341,"image":6},"我要投稿","https://www.infoq.cn/contribute",{"name":343,"link":344,"image":6},"合作伙伴","https://www.geekbang.org/partner",{"name":346,"link":347,"image":6},"加入我们","https://www.lagou.com/gongsi/j43775.html",{"name":349,"link":350,"image":6},"关注我们","https://infoq.cn/official/account","InfoQ",{"list":353,"name":370},[354,357,360,363,366,368],{"name":355,"link":356,"image":6},"内容投稿:editors@geekbang.com","mailto:editors@geekbang.com",{"name":358,"link":359,"image":6},"业务合作:hezuo@geekbang.com","mailto:hezuo@geekbang.com",{"name":361,"link":362,"image":6},"反馈投诉:feedback@geekbang.com","mailto:feedback@geekbang.com",{"name":364,"link":365,"image":6},"加入我们:zhaopin@geekbang.com","mailto:zhaopin@geekbang.com",{"name":367,"link":6,"image":6},"联系电话:010-64738142",{"name":369,"link":6,"image":6},"地址:北京市朝阳区望京北路9号2幢7层A701","联系我们",{"list":372,"name":379},[373,376],{"name":374,"link":375,"image":6},"北京 · QCon 全球软件开发大会 2026.4.16-18","https://qcon.infoq.cn/2026/beijing?utm_source=infoq&utm_medium=footer",{"name":377,"link":378,"image":6},"上海 · AICon 全球人工智能开发与应用大会 2026.6.26-27","https://aicon.infoq.cn/2026/shanghai?utm_source=infoq&utm_medium=footer","InfoQ 近期会议",{"list":381,"name":398},[382,386,390,394],{"name":383,"link":384,"image":385},"InfoQ En","https://www.infoq.com/","https://static001.infoq.cn/resource/image/55/38/55cd81623e36f5ab7a7db74d60b74838.png",{"name":387,"link":388,"image":389},"InfoQ Jp","https://www.infoq.com/jp/","https://static001.infoq.cn/resource/image/95/13/95fe851c02c86120e9037eada6a36d13.png",{"name":391,"link":392,"image":393},"InfoQ Fr","http://www.infoq.com/fr/","https://static001.infoq.cn/resource/image/2a/3e/2aa440b6d94e94f64c508f16da38933e.png",{"name":395,"link":396,"image":397},"InfoQ Br","http://www.infoq.com/br/","https://static001.infoq.cn/resource/image/4e/1e/4e737ce82bc7c8a1c2f2307bcea9a11e.png","全球 InfoQ",[400,407,413,419,426,432,439,446,453,458,464,470,476,482,488,494,500,506,511,518,524,531,537,543,549,555,561,567,573,578,584,591,597,603,608,614,619,623,628,634,640,647,652,658,664,670,676,682,688,693],{"end_time":401,"img":402,"link":403,"location":404,"name":405,"start_time":406},1769702399,"https://static001.infoq.cn/resource/image/d4/9c/d4e5067b12778600a0c7dab53868949c.png","https://www.infoq.cn/form/?id=2995&utm_source=infoq&sign=iq_6964b8f50a6d2","线上","2025 re:Invent 精彩回顾及新品解读",1768320000,{"end_time":408,"img":409,"link":410,"location":404,"name":411,"start_time":412},1864569599,"https://static001.infoq.cn/resource/image/df/d7/df1a288f1e97e615ba35cae4a9127ed7.jpg","https://www.infoq.cn/space/snowflake","Snowflake 中文社区上线!",1766073600,{"end_time":414,"img":415,"link":416,"location":404,"name":417,"start_time":418},1766937599,"https://static001.infoq.cn/resource/image/6c/9a/6c9e1e98a21c06cfyy6a4236e8dc0e9a.png","https://developer.huawei.com/consumer/cn/?ha_source=InfoQ&ha_sourceId=70000011","鸿蒙开发者阵营 智能生态新图景!",1766332800,{"end_time":420,"img":421,"link":422,"location":423,"name":424,"start_time":425},1766246399,"https://static001.infoq.cn/resource/image/36/ec/36d8b16de68a2aa3c2a3ce732d318dec.png","https://www.infoq.cn/form/?id=2926&utm_source=gw&sign=iq_6938cf671ced6","北京","出海时代的基础设施构建与模型场景实践",1765296000,{"end_time":427,"img":428,"link":429,"location":404,"name":430,"start_time":431},1763481599,"https://static001.infoq.cn/resource/image/23/f9/23daea7659yye0e9e4bd55733a413bf9.png","https://www.infoq.cn/form/?id=2876&utm_source=infoq&sign=iq_690dc735a6bc5","你的 Agentic Al 队友已上线",1763049600,{"end_time":433,"img":434,"link":435,"location":436,"name":437,"start_time":438},1720799999,"https://static001.infoq.cn/resource/image/8d/77/8d3b0287db45117a2d1abbd8061fd177.jpg","https://www.infoq.cn/event/?id=286&utm_source=1&sign=iq_667d3d12723c8","深圳","火山引擎金融大模型城市环游·深圳站",1720713600,{"end_time":440,"img":441,"link":442,"location":443,"name":444,"start_time":445},1761321599,"https://static001.infoq.cn/resource/image/d5/3d/d538764e308a60384168b28e0f394f3d.png","https://www.infoq.cn/form/?id=2827&utm_source=huodongdabenying&sign=iq_68ef417882d95","上海","【QCon专场】AI双引擎:业务增长与安全重构",1761235200,{"end_time":447,"img":448,"link":449,"location":450,"name":451,"start_time":452},1761235199,"https://static001.infoq.cn/resource/image/cb/f7/cbbyy3d4ea8d4b3fcaa37e7140e120f7.png","https://jinshuju.com/f/MkXdNt?x_field_1=Amazon1","线下丨上海","QCon 亚马逊云专场:AI IDE重构开发想象",1761148800,{"end_time":454,"img":455,"link":416,"location":404,"name":456,"start_time":457},1763654399,"https://static001.infoq.cn/resource/image/15/ca/15b2f71676f5f3928ff5daeb21333dca.png","加入鸿蒙开发者阵营 开拓智能生态新蓝海!",1759248000,{"end_time":459,"img":460,"link":461,"location":404,"name":462,"start_time":463},1761840000,"https://static001.infoq.cn/resource/image/4f/41/4f7808d67c8e31b93d6fc1223716d241.jpg","https://www.infoq.cn/article/Xc1pH6JxKvgK7zFI8wFy","Snowflake 免费培训!欢迎参与!",1758988800,{"end_time":465,"img":466,"link":467,"location":404,"name":468,"start_time":469},1760975999,"https://static001.infoq.cn/resource/image/4e/d2/4e80781158e74fba43ba56d1f1d3ffd2.jpg","https://competition.atomgit.com/competitionInfo?id=49f0205ecd5c81c96381829456fef6a5&utm_source=inf1#heading-0-0","vivo大会",1760889600,{"end_time":471,"img":472,"link":473,"location":404,"name":474,"start_time":475},1763308799,"https://static001.infoq.cn/resource/image/b8/38/b844639e4b68d24036a3f1d4ba277038.png","https://www.infoq.cn/zones/fintechathon/campus2025/?id=2789&utm_source=guanwang&sign=iq_68d3b023255cf","2025 深圳国际金融科技大赛",1758816000,{"end_time":477,"img":478,"link":479,"location":404,"name":480,"start_time":481},1758038400,"https://static001.infoq.cn/resource/image/ba/2a/ba3fe8d0e31bdccf7c76f44f3157b12a.jpg","https://qdrl.qq.com/2lbhIc4r","2025腾讯全球数字生态大会",1757952000,{"end_time":483,"img":484,"link":485,"location":443,"name":486,"start_time":487},1753891199,"https://static001.infoq.cn/resource/image/d4/67/d4824160c0c26a3b04edf9dc0f2faa67.jpg","https://online2025.worldaic.com.cn/","WAIC",1753459200,{"end_time":489,"img":490,"link":491,"location":423,"name":492,"start_time":493},1756483200,"https://static001.infoq.cn/resource/image/17/18/1732a4bcdbeda67f98f66a33yy246b18.jpg","https://digital.cloud.baidu.com/mF/ems/none/3crBbdbaUbAgQdv8tF9ktG/HWSe9KTq83gsvLvEmWUQQY1","2025百度云智大会",1756310400,{"end_time":495,"img":496,"link":497,"location":404,"name":498,"start_time":499},1754496000,"https://static001.infoq.cn/resource/image/03/cc/03bec4d2ba678277fcaaeecc405895cc.png","https://www.infoq.cn/form/?id=2757&utm_source=infoq&sign=iq_688352ece260f","2025亚马逊云科技峰会精华回顾",1753632000,{"end_time":501,"img":502,"link":503,"location":404,"name":504,"start_time":505},1753977599,"https://static001.infoq.cn/resource/image/a5/d3/a5518edc427e92079fcd7956daabbcd3.png","https://www.infoq.cn/zones/awscertification-june/","亚马逊培训认证6月",1748707200,{"end_time":501,"img":507,"link":508,"location":404,"name":509,"start_time":510},"https://static001.infoq.cn/resource/image/00/cb/0049b66c781ca3f5b8d5d4de60dde7cb.png","https://qr20.cn/EoJnXW","即刻成为鸿蒙应用开发者 携手共拓鸿蒙世界!",1749398400,{"end_time":512,"img":513,"link":514,"location":515,"name":516,"start_time":517},1749571199,"https://static001.infoq.cn/resource/image/4a/26/4aa6fc20bb1eyy67772eb4a09873e026.png","https://qdrl.qq.com/cljVFWT9","青岛","2025 腾讯云城市峰会",1749484800,{"end_time":519,"img":520,"link":521,"location":443,"name":522,"start_time":523},1750348800,"https://static001.infoq.cn/resource/image/cf/43/cfb7236133b4736ba0a11be8cfae3043.png","https://www.infoq.cn/event/?id=298","亚马逊云SUMMIT",1750262400,{"end_time":525,"img":526,"link":527,"location":528,"name":529,"start_time":530},1747411200,"https://static001.infoq.cn/resource/image/ef/8c/efe32080fc748d5a07e569f08725bf8c.png","https://www.infoq.cn/form/?id=2679&utm_source=huodongdabenying&sign=iq_682166ae7775c","广州德事商务中心","2025 iFLYTEK 开发者TALK广州站",1747065600,{"end_time":532,"img":533,"link":534,"location":404,"name":535,"start_time":536},1745596799,"https://static001.infoq.cn/resource/image/61/57/6192fd75e85bee189d6cb7a3c34e9957.png","https://cloud.baidu.com/product-s/qianfan_home?track=44ca1a7f797708dfe98a81110b458fe0edf9d479e262c870","百度智能云干帆应用开发平台",1745510400,{"end_time":538,"img":539,"link":540,"location":443,"name":541,"start_time":542},1725638399,"https://static001.infoq.cn/resource/image/f6/f8/f60e03ca867228dd431db0e9f30138f8.png","https://register.inclusionconf.com/invitelogin?inviteCode=FS_j3lZdwf1&channelType=major","跨越安卓和iOS:开启国产OS移动开发新时代",1725552000,{"end_time":544,"img":545,"link":546,"location":404,"name":547,"start_time":548},1744819199,"https://static001.infoq.cn/resource/image/b9/20/b9c4f00bf0f085ef864eb89dae26b820.png","https://static001.geekbang.org/resource/image/4c/f4/4c06d0d4205fb11551f60871f858a9f4.png","AIGC时代,研发人破局转型之道",1744732800,{"end_time":550,"img":551,"link":552,"location":423,"name":553,"start_time":554},1744300799,"https://static001.infoq.cn/resource/image/bf/8b/bf2be549b7ef31367ce882cef0c80f8b.png","https://www.infoq.cn/form/?id=2630&utm_source=huodongdabenying&sign=iq_67e4cdd0c38d0","HarmonyOS NEXT创新特性与行业实践",1744214400,{"end_time":556,"img":557,"link":558,"location":404,"name":559,"start_time":560},1749139199,"https://static001.infoq.cn/resource/image/8f/5a/8f42b5102d2a6bb01b1yy25de678c05a.jpg","https://www.infoq.cn/article/EiZAWhIT5U9YRPi893NR","开源合规精选培训课程",1745596800,{"end_time":562,"img":563,"link":564,"location":404,"name":565,"start_time":566},1747843199,"https://static001.infoq.cn/resource/image/f4/e7/f4ea438f30b686f709187b789e4a57e7.png","https://sourl.co/geWFmz","亚马逊AI认证4月",1742486400,{"end_time":568,"img":569,"link":570,"location":404,"name":571,"start_time":572},1741881600,"https://static001.infoq.cn/resource/image/b3/d6/b3a02c6ea0269f79af48167yy01eced6.png","https://www.infoq.cn/event/?id=294","为突破而构建数据燃动AI",1739980800,{"end_time":574,"img":575,"link":416,"location":404,"name":576,"start_time":577},1738252800,"https://static001.infoq.cn/resource/image/0b/5a/0b27a8d162d93b7c6ea3e08b60e9f65a.png","即刻加入,成为harmony OS应用开发者",1735056000,{"end_time":579,"img":580,"link":581,"location":423,"name":582,"start_time":583},1734105599,"https://static001.infoq.cn/resource/image/3a/24/3a84c8b7aa904bf46177ff84e8c6cb24.jpg","https://www.infoq.cn/event/?id=293","Al for Data 与大模型训练加速实践 专场",1734019200,{"end_time":585,"img":586,"link":587,"location":588,"name":589,"start_time":590},1734278399,"https://static001.infoq.cn/resource/image/76/0c/76f5522fb34a5b0f23092d90a043770c.png","https://www.infoq.cn/form/?id=2460&utm_source=hd&sign=iq_6746f157b717f","广州","探索数据生态协同创新 Meetup",1734192000,{"end_time":592,"img":593,"link":594,"location":404,"name":595,"start_time":596},1734710399,"https://static001.infoq.cn/resource/image/22/dc/2211300cc2d2acfda040922ef5a6a1dc.png","https://www.infoq.cn/article/otlWQdLRB7ci1K1TPdbZ","字节跳动开源云原生数据仓库ByConity众测",1732636800,{"end_time":598,"img":599,"link":600,"location":443,"name":601,"start_time":602},1733587199,"https://static001.infoq.cn/resource/image/3f/a9/3f7cd8a638c24412fe295d810ae218a9.jpeg","https://www.huodongxing.com/event/6783033754700?qd=OpenTiny","2024华为云开源开发者论坛",1733500800,{"end_time":598,"img":604,"link":605,"location":404,"name":606,"start_time":607},"https://static001.infoq.cn/resource/image/f9/74/f93dd0b1242137659f8e5dd00decdb74.png","https://dev.amazoncloud.cn/competition/detail/genaicompetition?visitfrom=InfoQ1","第三届中国生成式 AI 应用创新挑战赛推广",1732204800,{"end_time":609,"img":610,"link":611,"location":404,"name":612,"start_time":613},1732982399,"https://static001.infoq.cn/resource/image/7e/0d/7e1428b18yy9b081542b4ef08a00ce0d.png","https://jsj.top/f/xU2Gmv","Amazon Q Developer 体验调研",1731513600,{"end_time":615,"img":616,"link":617,"location":404,"name":618,"start_time":613},1734019199,"https://static001.infoq.cn/resource/image/ff/c3/ff1287bf2a34793531813bb811896ac3.png","https://dev.amazoncloud.cn/associate-retake?visitfrom=infoq1","亚马逊云科技助理级认证活动",{"end_time":609,"img":620,"link":621,"location":404,"name":622,"start_time":613},"https://static001.infoq.cn/resource/image/3f/94/3f72e2c02d4a203980f89f3f6e813694.png","https://dev.amazoncloud.cn/learn/aitalent/obtainCertificate?visitfrom=infoQ1","亚马逊云科技AI从业者认证",{"end_time":609,"img":624,"link":625,"location":404,"name":626,"start_time":627},"https://static001.infoq.cn/resource/image/38/9c/38f2a6d31f52ef17781678c0a82dde9c.png","https://cloud.baidu.com/campaign/qianfan/index.html?track=98df3bcb86b429860e9c9fdca4fd2edc50b7882e882c090f","千帆大模型平台特惠专场",1731427200,{"end_time":629,"img":630,"link":631,"location":443,"name":632,"start_time":633},1731427199,"https://static001.infoq.cn/resource/image/81/b4/81e10cbdc5636f5ca57fae44f044b1b4.png","https://baiduworld.baidu.com","百度世界大会",1731340800,{"end_time":635,"img":636,"link":637,"location":404,"name":638,"start_time":639},1732463999,"https://static001.infoq.cn/resource/image/d1/a0/d16ecacda10d8614fa0a2928f04f0da0.png","https://mp.weixin.qq.com/s/LmG1_1NTkvigdewqE-LQwA","蚂蚁 agentUniverse 征文活动",1729699200,{"end_time":641,"img":642,"link":643,"location":644,"name":645,"start_time":646},1729785599,"https://static001.infoq.cn/resource/image/a4/96/a4c947d9a4ddaed63c2ab7298285e996.jpg","https://hdxu.cn/fimi","武汉","鸿蒙1024程序员节",1729526400,{"end_time":648,"img":649,"link":650,"location":404,"name":622,"start_time":651},1731600000,"https://static001.infoq.cn/resource/image/07/e4/07336456945434c08c91f748f61ba3e4.png","https://sourl.co/q3rci3",1728835200,{"end_time":653,"img":654,"link":655,"location":404,"name":656,"start_time":657},1735660799,"https://static001.infoq.cn/resource/image/6b/c4/6be7d03702b715e359c0116d8e2e0dc4.jpg","https://aistudio.baidu.com/intro/awards","星河产业应用创新奖",1728489600,{"end_time":659,"img":660,"link":661,"location":404,"name":662,"start_time":663},1729007999,"https://static001.infoq.cn/resource/image/ba/43/baecfa1b25b5c028f12cdf7a953c7d43.jpg","https://www.volcengine.com/contact/videocloud?utm_campaign=20241015&utm_content=shipinyunjishudahui&utm_medium=in_mkt&utm_source=event&utm_term=infoQ","2024火山引擎视频云技术大会",1728403200,{"end_time":665,"img":666,"link":667,"location":404,"name":668,"start_time":669},1727711999,"https://static001.infoq.cn/resource/image/90/d5/900f755fb922f23ac75d1e1e0e0b93d5.png","https://developer.huawei.com/consumer/cn/training/classDetail/e6608f8c416f427a847ecf717e9ed8d4?ha_source=InfoQ&ha_sourceId=70000011","HarmonyOS开发者基础认证",1721232000,{"end_time":671,"img":672,"link":673,"location":443,"name":674,"start_time":675},1727020799,"https://static001.infoq.cn/resource/image/8c/f0/8cc9fcbyy7a84df7e664d68993c6fcf0.jpg","https://gtlc.infoq.cn/2024/shanghai?utm_source=infoq&utm_medium=activity","GTLC 全球科技领导力大会·上海站",1726934400,{"end_time":677,"img":678,"link":679,"location":404,"name":680,"start_time":681},1725465599,"https://static001.infoq.cn/resource/image/d8/4f/d8b879c6d4a63f47dbe7b38f8b5d674f.jpeg","https://future.feishu.cn/?utm_from=marketing_media_infoq","2024飞书未来无限大会",1725379200,{"end_time":683,"img":684,"link":685,"location":404,"name":686,"start_time":687},1726847999,"https://static001.infoq.cn/resource/image/6e/0b/6e2f5b5ef5e5e9c4c9bb35e822ceb70b.png","https://jsj.top/f/mGBq18?x_field_1=gw","【InfoQ 社区福利】 注册 AWS 账户有礼!",1725292800,{"end_time":665,"img":689,"link":690,"location":404,"name":691,"start_time":692},"https://static001.infoq.cn/resource/image/6f/29/6f5bbde0c3e86fd62d3b2a82d2a60129.png","https://sourl.co/nxGUcQ","亚马逊云科技云从业者认证",1724947200,{"end_time":694,"img":695,"link":696,"location":404,"name":697,"start_time":698},1726156799,"https://static001.infoq.cn/resource/image/d2/43/d2817551c5269604d22f901152d61543.png","https://www.volcengine.com/event/ai-competition?utm_campaign=20240809&utm_content=ai-competition&utm_medium=in_mkt&utm_source=event&utm_term=infoQ","火山引擎AI创造者大赛",1723996800,[700,703,706,709,712,715,717,719,722,725,728],{"icon":6,"link":701,"name":702},"https://www.infoq.cn/","首页",{"icon":330,"link":704,"name":705},"https://www.infoq.cn/archives","AI会议",{"icon":330,"link":707,"name":708},"https://time.geekbang.org/resource?pt=1","AI课程",{"icon":330,"link":710,"name":711},"https://agicamp.com/ranking-list/?utm_source=infoqbar","AI应用",{"icon":6,"link":713,"name":714},"https://www.infoq.cn/zones/chinatechawards2025/","AI榜单",{"icon":6,"link":716,"name":265},"https://www.infoq.cn/zones/harmonyos/",{"icon":330,"link":473,"name":718},"AI大赛",{"icon":6,"link":720,"name":721},"https://www.infoq.cn/minibook","报告",{"icon":6,"link":723,"name":724},"https://www.infoq.cn/video","视频",{"icon":6,"link":726,"name":727},"https://zhinan.geekbang.com/?utm_source=geektimeweb&utm_medium=menu&gk_source=20241016_geektimeweb_menu","AI指南",{"icon":6,"link":729,"name":730},"https://www.infoq.cn/research","研究中心",{"authorData":732,"id":752,"aid":753,"aidint":754,"type":15,"views":755,"uuid":756,"status":15,"publish_time":757,"ctime":758,"utime":759,"vid":6,"source":15,"sub_status":7,"ip_address":423,"score":757,"article_title":760,"article_sharetitle":760,"article_subtitle":6,"article_summary":761,"article_cover":762,"article_cover_point":763,"author":740,"translator":120,"planner":120,"topic":764,"is_collect":767,"no_author":6,"is_promotion":767,"share_pic":6,"sub_type":768,"comment_user":7,"comment_count":7,"speaker_title":6,"speaker_introduce":6,"video_status":7,"duration":6,"total_duration":6,"label":769,"out_id":120,"word_count":770,"front_type":15,"content_short":6,"is_fill_info":7,"content":771,"ebook":1563,"love":311,"is_love":767,"copyright":15,"lead_author":7,"ppt_url":6,"publisher":1564,"definition":120,"read_status":7,"collect":766,"checker":120,"outlines":120,"content_url":1565,"themes":1566,"audio_status":15,"audio_url":1567,"audio_size":1568,"ebook_type":7,"video":1569,"topicIdsMustBeSelected":1570,"topicNamesMustBeSelected":1571,"themeIds":1572,"themeNames":1573},{"uid":733,"nickname":734,"avatar":735,"active":15,"is_early":7,"ucode":736,"uri":737,"author_type":15,"vip":7,"authorLabel":738,"isAuthor":739,"list":740},1708397,"凌敏","https://static001.geekbang.org/account/avatar/00/1a/11/6d/538cc67f.jpg","16655B089D4524","/profile/16655B089D4524/","作者",true,[732,741,747],{"uid":742,"nickname":743,"avatar":744,"active":15,"is_early":7,"ucode":745,"uri":746,"author_type":7,"vip":7},1977947,"核子可乐","https://static001.geekbang.org/account/avatar/00/1e/2e/5b/2d699f71.jpg","6ED9393AE2AE1F","/profile/6ED9393AE2AE1F/",{"uid":748,"nickname":749,"avatar":6,"active":15,"is_early":7,"ucode":750,"uri":751,"author_type":7,"vip":7},1368875,"平川","4D6E74F678F49C","/profile/4D6E74F678F49C/",268758,"270313",270313,9627,"2t41mOMj3Hw2fBiTGLJH",1708929500504,1708929502460,1708929558059,"沉寂600多天后,React憋了个大招","React 19革新前端开发,Instagram已率先尝鲜。","https://static001.infoq.cn/resource/image/50/ed/50b5061482c390afefe7aba5478dfeed.jpg","{\"big\":{\"point\":{\"x\":0,\"y\":5,\"w\":1280,\"h\":720}},\"small\":{\"point\":{\"x\":0,\"y\":0,\"w\":1280,\"h\":720}},\"width\":1280,\"height\":853}",[765],{"id":284,"name":285,"alias":6,"type":766},2,false,4,[],3510,{"type":772,"content":773},"doc",[774,783,794,802,809,817,824,832,838,845,853,860,933,940,948,953,960,968,975,983,985,997,999,1007,1014,1037,1045,1052,1060,1067,1075,1082,1088,1095,1103,1110,1115,1122,1127,1134,1142,1150,1157,1165,1172,1180,1187,1196,1203,1211,1218,1227,1234,1242,1249,1258,1265,1273,1280,1285,1292,1300,1307,1312,1319,1327,1334,1342,1350,1357,1365,1372,1380,1387,1422,1429,1437,1444,1490,1497,1505,1512,1520,1530,1541,1552],{"type":775,"content":776},"blockquote",[777],{"type":778,"attrs":779,"content":780},"paragraph",{"indent":7,"number":7,"align":120,"origin":120},[781],{"type":782,"text":761},"text",{"type":778,"attrs":784,"content":785},{"indent":7,"number":7,"align":120,"origin":120},[786],{"type":782,"marks":787,"text":793},[788],{"type":789,"attrs":790},"color",{"color":791,"name":792},"#494949","user"," ",{"type":778,"attrs":795,"content":796},{"indent":7,"number":7,"align":120,"origin":120},[797],{"type":782,"marks":798,"text":801},[799],{"type":789,"attrs":800},{"color":791,"name":792},"自2022年6月发布React 18.2以来(React 18于2022年3月发布),React团队一直没有发布新的稳定版本。沉寂600多天后,近日,React团队表示他们将要发布最新的“大版本”——React 19,目前他们正在为正式发布做准备工作。据悉,React 19将专注于提高构建复杂Web应用程序的生产力、性能与开发者体验。",{"type":778,"attrs":803,"content":804},{"indent":7,"number":7,"align":120,"origin":120},[805],{"type":782,"marks":806,"text":793},[807],{"type":789,"attrs":808},{"color":791,"name":792},{"type":778,"attrs":810,"content":811},{"indent":7,"number":7,"align":120,"origin":120},[812],{"type":782,"marks":813,"text":816},[814],{"type":789,"attrs":815},{"color":791,"name":792},"值得一提的是,在上一个大版本中,服务器组件(Server Component)这个最大的特性被描述为“实验性的”,如今,React团队已经将React Compiler描述为“不再是一个研究项目”。此外,React团队还介绍了下一个大版本React 19的特性,其中包括Actions(正式名称为Server Actions)、资产加载和Web组件支持。",{"type":778,"attrs":818,"content":819},{"indent":7,"number":7,"align":120,"origin":120},[820],{"type":782,"marks":821,"text":793},[822],{"type":789,"attrs":823},{"color":791,"name":792},{"type":778,"attrs":825,"content":826},{"indent":7,"number":7,"align":120,"origin":120},[827],{"type":782,"marks":828,"text":831},[829],{"type":789,"attrs":830},{"color":791,"name":792},"根据React Conf 2021大会和官方React博客上的公告,React 19仍处于早期开发与测试阶段,很可能会在2024年内的适当时候推出。React团队希望保障向下兼容性,也想让社区能有时间为潜在的各类重大变更做好准备。",{"type":833,"attrs":834,"content":835},"heading",{"align":120,"level":766},[836],{"type":782,"text":837},"React 19新增了哪些功能?",{"type":778,"attrs":839,"content":840},{"indent":7,"number":7,"align":120,"origin":120},[841],{"type":782,"marks":842,"text":793},[843],{"type":789,"attrs":844},{"color":791,"name":792},{"type":778,"attrs":846,"content":847},{"indent":7,"number":7,"align":120,"origin":120},[848],{"type":782,"marks":849,"text":852},[850],{"type":789,"attrs":851},{"color":791,"name":792},"从精致的并发渲染到新颖的状态处理机制,React 19尝试进一步增强性能与开发者体验。具体来说,React 19引入了一系列令人兴奋的改进,新版本的主要亮点包括:",{"type":778,"attrs":854,"content":855},{"indent":7,"number":7,"align":120,"origin":120},[856],{"type":782,"marks":857,"text":793},[858],{"type":789,"attrs":859},{"color":791,"name":792},{"type":861,"content":862},"bulletedlist",[863,882,899,916],{"type":864,"attrs":865,"content":866},"listitem",{"listStyle":120},[867],{"type":778,"attrs":868,"content":869},{"indent":7,"number":7,"align":120,"origin":120},[870,877],{"type":782,"marks":871,"text":876},[872,874],{"type":789,"attrs":873},{"color":791,"name":792},{"type":875},"strong","新的React Compiler编译器",{"type":782,"marks":878,"text":881},[879],{"type":789,"attrs":880},{"color":791,"name":792},":升级后的编译器带来skip mode和selective hydration选择性水合等性能优化选项,可帮助应用程序提升加载速度。",{"type":864,"attrs":883,"content":884},{"listStyle":120},[885],{"type":778,"attrs":886,"content":887},{"indent":7,"number":7,"align":120,"origin":120},[888,894],{"type":782,"marks":889,"text":893},[890,892],{"type":789,"attrs":891},{"color":791,"name":792},{"type":875},"协调改进",{"type":782,"marks":895,"text":898},[896],{"type":789,"attrs":897},{"color":791,"name":792},":startTransition API等更新能够将工作拆分成多个块,使得复杂UI的响应速度更快。",{"type":864,"attrs":900,"content":901},{"listStyle":120},[902],{"type":778,"attrs":903,"content":904},{"indent":7,"number":7,"align":120,"origin":120},[905,911],{"type":782,"marks":906,"text":910},[907,909],{"type":789,"attrs":908},{"color":791,"name":792},{"type":875},"Strict mode严格模式检查",{"type":782,"marks":912,"text":915},[913],{"type":789,"attrs":914},{"color":791,"name":792},":新的严格相等性检查和删除已弃用API等举措,将确保应用程序始终遵循最佳实践。",{"type":864,"attrs":917,"content":918},{"listStyle":120},[919],{"type":778,"attrs":920,"content":921},{"indent":7,"number":7,"align":120,"origin":120},[922,928],{"type":782,"marks":923,"text":927},[924,926],{"type":789,"attrs":925},{"color":791,"name":792},{"type":875},"水合与SSR变更",{"type":782,"marks":929,"text":932},[930],{"type":789,"attrs":931},{"color":791,"name":792},":Fiber树复制与useId hook能够更好地支持在服务器端渲染的应用程序。",{"type":778,"attrs":934,"content":935},{"indent":7,"number":7,"align":120,"origin":120},[936],{"type":782,"marks":937,"text":793},[938],{"type":789,"attrs":939},{"color":791,"name":792},{"type":778,"attrs":941,"content":942},{"indent":7,"number":7,"align":120,"origin":120},[943],{"type":782,"marks":944,"text":947},[945],{"type":789,"attrs":946},{"color":791,"name":792},"下面,我们来具体探讨这些新近落地的附加功能,深入了解它们会如何重塑动态用户界面的开发格局。",{"type":833,"attrs":949,"content":950},{"align":120,"level":768},[951],{"type":782,"text":952},"1. React Compiler",{"type":778,"attrs":954,"content":955},{"indent":7,"number":7,"align":120,"origin":120},[956],{"type":782,"marks":957,"text":793},[958],{"type":789,"attrs":959},{"color":791,"name":792},{"type":778,"attrs":961,"content":962},{"indent":7,"number":7,"align":120,"origin":120},[963],{"type":782,"marks":964,"text":967},[965],{"type":789,"attrs":966},{"color":791,"name":792},"React团队已经将React Compiler描述为“不再是一个研究项目”。根据该团队发布的最新消息,该编译器现在“已交付Instagram.com生产应用”,这也标志着React功能的又一重大进步。",{"type":778,"attrs":969,"content":970},{"indent":7,"number":7,"align":120,"origin":120},[971],{"type":782,"marks":972,"text":793},[973],{"type":789,"attrs":974},{"color":791,"name":792},{"type":778,"attrs":976,"content":977},{"indent":7,"number":7,"align":120,"origin":120},[978],{"type":782,"marks":979,"text":982},[980],{"type":789,"attrs":981},{"color":791,"name":792},"根据帖子介绍,该团队已经在“加速把它扩展到Meta的其他业务面并推动开源”,但没有公布正式发布日期。尽管如此,React团队Vercel工程师Andrew Clark在推特上写道,“到2024年底”,开发人员“可能就永远不需要”包括useMemo在内的API了。",{"type":778,"attrs":984},{"indent":7,"number":7,"align":120,"origin":120},{"type":986,"attrs":987},"image",{"src":988,"alt":120,"title":989,"style":990,"href":120,"fromPaste":767,"pastePass":767},"https://static001.geekbang.org/infoq/c7/c7641b8e5c5adfe4bf1c73d04e952f66.jpeg","React工程师Andrew Clark预计,到2024年底就不再需要useMemo了。也就是说,到那时所有人都可以使用React Compiler了。",[991,994],{"key":992,"value":993},"width","75%",{"key":995,"value":996},"bordertype","none",{"type":778,"attrs":998},{"indent":7,"number":7,"align":120,"origin":120},{"type":778,"attrs":1000,"content":1001},{"indent":7,"number":7,"align":120,"origin":120},[1002],{"type":782,"marks":1003,"text":1006},[1004],{"type":789,"attrs":1005},{"color":791,"name":792},"React Compiler通过引入优化编译器解决了状态变量时过度重新渲染的问题。与手动记忆化(manual memoization)不同,这款编译器会在状态发生变化时自动对UI中的特定部分进行重新渲染,从而消除代码混乱。React Compiler遵循JavaScript与React运行规则,可保障安全性与性能。开发人员能够使用Strict Mode严格模式与React ESLint插件验证编写的代码。",{"type":778,"attrs":1008,"content":1009},{"indent":7,"number":7,"align":120,"origin":120},[1010],{"type":782,"marks":1011,"text":793},[1012],{"type":789,"attrs":1013},{"color":791,"name":792},{"type":778,"attrs":1015,"content":1016},{"indent":7,"number":7,"align":120,"origin":120},[1017,1022,1032],{"type":782,"marks":1018,"text":1021},[1019],{"type":789,"attrs":1020},{"color":791,"name":792},"根据该团队发布的",{"type":1023,"attrs":1024,"content":1026,"marks":1029},"link",{"href":1025,"title":120,"type":120},"https://react.dev/blog/2024/02/15/react-labs-what-we-have-been-working-on-february-2024",[1027],{"type":782,"text":1028},"最新消息",[1030],{"type":789,"attrs":1031},{"color":791,"name":792},{"type":782,"marks":1033,"text":1036},[1034],{"type":789,"attrs":1035},{"color":791,"name":792},",这款编译器已经在Instagram.com上得到生产应用,即将被整合进Meta界面当中,后续开源版本亦在筹备当中。",{"type":833,"attrs":1038,"content":1039},{"align":120,"level":768},[1040],{"type":782,"marks":1041,"text":1044},[1042],{"type":789,"attrs":1043},{"color":791,"name":792},"2. Actions",{"type":778,"attrs":1046,"content":1047},{"indent":7,"number":7,"align":120,"origin":120},[1048],{"type":782,"marks":1049,"text":793},[1050],{"type":789,"attrs":1051},{"color":791,"name":792},{"type":778,"attrs":1053,"content":1054},{"indent":7,"number":7,"align":120,"origin":120},[1055],{"type":782,"marks":1056,"text":1059},[1057],{"type":789,"attrs":1058},{"color":791,"name":792},"另一个新特性是Action,用于管理从客户端发送到服务器的数据,比如表单元素。该团队解释说,“当使用action时,React将为你管理数据提交的生命周期,提供像useFormStatus和useFormState这样的钩子来访问表单动作的当前状态和响应”。",{"type":778,"attrs":1061,"content":1062},{"indent":7,"number":7,"align":120,"origin":120},[1063],{"type":782,"marks":1064,"text":793},[1065],{"type":789,"attrs":1066},{"color":791,"name":792},{"type":778,"attrs":1068,"content":1069},{"indent":7,"number":7,"align":120,"origin":120},[1070],{"type":782,"marks":1071,"text":1074},[1072],{"type":789,"attrs":1073},{"color":791,"name":792},"Actions允许开发者将函数传递给DOM元素,例如:",{"type":778,"attrs":1076,"content":1077},{"indent":7,"number":7,"align":120,"origin":120},[1078],{"type":782,"marks":1079,"text":793},[1080],{"type":789,"attrs":1081},{"color":791,"name":792},{"type":1083,"attrs":1084,"content":1085},"codeblock",{"lang":120},[1086],{"type":782,"text":1087},"\u003Cform action={search}>\n \u003Cinput name=\"query\" />\n \u003Cbutton type=\"submit\">Search\u003C/button>\n\u003C/form>",{"type":778,"attrs":1089,"content":1090},{"indent":7,"number":7,"align":120,"origin":120},[1091],{"type":782,"marks":1092,"text":793},[1093],{"type":789,"attrs":1094},{"color":791,"name":792},{"type":778,"attrs":1096,"content":1097},{"indent":7,"number":7,"align":120,"origin":120},[1098],{"type":782,"marks":1099,"text":1102},[1100],{"type":789,"attrs":1101},{"color":791,"name":792},"这项操作函数可以灵活实现同步或者异步操作。开发者能够使用标准JavaScript在客户端上定义该函数,也可使用“use server”指令在服务器上定义。React则负责在使用某项操作时管理数据提交生命周期,提供useFormStatus和useFormState等hooks来访问当前表单操作的状态与响应。",{"type":778,"attrs":1104,"content":1105},{"indent":7,"number":7,"align":120,"origin":120},[1106],{"type":782,"marks":1107,"text":793},[1108],{"type":789,"attrs":1109},{"color":791,"name":792},{"type":1083,"attrs":1111,"content":1112},{"lang":120},[1113],{"type":782,"text":1114},"import { useFormStatus } from \"react-dom\";\nimport action from './actions';\nfunction Submit() {\n const status = useFormStatus();\n return \u003Cbutton disabled={status.pending}>Submit\u003C/button>\n}\nexport default function App() {\n return (\n \u003Cform action={action}>\n \u003CSubmit />\n \u003C/form>\n );\n}",{"type":778,"attrs":1116,"content":1117},{"indent":7,"number":7,"align":120,"origin":120},[1118],{"type":782,"marks":1119,"text":793},[1120],{"type":789,"attrs":1121},{"color":791,"name":792},{"type":1083,"attrs":1123,"content":1124},{"lang":120},[1125],{"type":782,"text":1126},"import { useFormState } from \"react-dom\";\nasync function increment(previousState, formData) {\n return previousState + 1;\n}\nfunction StatefulForm({}) {\n const [state, formAction] = useFormState(increment, 0);\n return (\n \u003Cform>\n {state}\n \u003Cbutton formAction={formAction}>Increment\u003C/button>\n \u003C/form>\n )\n}",{"type":778,"attrs":1128,"content":1129},{"indent":7,"number":7,"align":120,"origin":120},[1130],{"type":782,"marks":1131,"text":793},[1132],{"type":789,"attrs":1133},{"color":791,"name":792},{"type":778,"attrs":1135,"content":1136},{"indent":7,"number":7,"align":120,"origin":120},[1137],{"type":782,"marks":1138,"text":1141},[1139],{"type":789,"attrs":1140},{"color":791,"name":792},"默认情况下,Actions会在转换内提交,从而在处理过程中保持当前页面的交互性。通过支持异步函数,在转换中引入async/awat可以显示待处理的UI,并利用isPending状态在异步请求(例如数据获取)期间发出正在进行的处理信号。",{"type":833,"attrs":1143,"content":1144},{"align":120,"level":768},[1145],{"type":782,"marks":1146,"text":1149},[1147],{"type":789,"attrs":1148},{"color":791,"name":792},"3. React Canary",{"type":778,"attrs":1151,"content":1152},{"indent":7,"number":7,"align":120,"origin":120},[1153],{"type":782,"marks":1154,"text":793},[1155],{"type":789,"attrs":1156},{"color":791,"name":792},{"type":778,"attrs":1158,"content":1159},{"indent":7,"number":7,"align":120,"origin":120},[1160],{"type":782,"marks":1161,"text":1164},[1162],{"type":789,"attrs":1163},{"color":791,"name":792},"Canary标志着React在开发方法层面的转变。在以往Meta内部研究和开发功能的传统方法不同,Canary强调通过社区协作公开构建以完善React Labs系列博文中介绍的功能。这种方法将确保用户在早期开发阶段就了解即将推出的功能,全程关注并逐步适应功能的最终版本,而不再直接通过稳定版发布硬性接受完善的功能选项。",{"type":778,"attrs":1166,"content":1167},{"indent":7,"number":7,"align":120,"origin":120},[1168],{"type":782,"marks":1169,"text":793},[1170],{"type":789,"attrs":1171},{"color":791,"name":792},{"type":778,"attrs":1173,"content":1174},{"indent":7,"number":7,"align":120,"origin":120},[1175],{"type":782,"marks":1176,"text":1179},[1177],{"type":789,"attrs":1178},{"color":791,"name":792},"React Canary所涵盖的功能包括React Server Components服务组件、Asset Loading资产加载、Document Metadata文档元数据与Actions操作函数等。",{"type":778,"attrs":1181,"content":1182},{"indent":7,"number":7,"align":120,"origin":120},[1183],{"type":782,"marks":1184,"text":793},[1185],{"type":789,"attrs":1186},{"color":791,"name":792},{"type":778,"attrs":1188,"content":1189},{"indent":7,"number":7,"align":120,"origin":120},[1190],{"type":782,"marks":1191,"text":1195},[1192,1194],{"type":789,"attrs":1193},{"color":791,"name":792},{"type":875},"指令",{"type":778,"attrs":1197,"content":1198},{"indent":7,"number":7,"align":120,"origin":120},[1199],{"type":782,"marks":1200,"text":793},[1201],{"type":789,"attrs":1202},{"color":791,"name":792},{"type":778,"attrs":1204,"content":1205},{"indent":7,"number":7,"align":120,"origin":120},[1206],{"type":782,"marks":1207,"text":1210},[1208],{"type":789,"attrs":1209},{"color":791,"name":792},"“use client”与“use server”是为全栈React框架设计的捆绑器功能。它们负责标记两种环境之间的“分割点”:“use client”指示捆绑器生成〈script〉标签(例如Astro Island),而“use server”则告知捆绑器生成POST端点(例如tRPC Mutations)。二者配合将编写出可复用组件,借此将客户端交互与相关服务器端逻辑结合起来。",{"type":778,"attrs":1212,"content":1213},{"indent":7,"number":7,"align":120,"origin":120},[1214],{"type":782,"marks":1215,"text":793},[1216],{"type":789,"attrs":1217},{"color":791,"name":792},{"type":778,"attrs":1219,"content":1220},{"indent":7,"number":7,"align":120,"origin":120},[1221],{"type":782,"marks":1222,"text":1226},[1223,1225],{"type":789,"attrs":1224},{"color":791,"name":792},{"type":875},"Document Metadata文档元数据",{"type":778,"attrs":1228,"content":1229},{"indent":7,"number":7,"align":120,"origin":120},[1230],{"type":782,"marks":1231,"text":793},[1232],{"type":789,"attrs":1233},{"color":791,"name":792},{"type":778,"attrs":1235,"content":1236},{"indent":7,"number":7,"align":120,"origin":120},[1237],{"type":782,"marks":1238,"text":1241},[1239],{"type":789,"attrs":1240},{"color":791,"name":792},"React 19新曾对组件树内任意位置上渲染\u003Ctitle>、\u003Cmeta> 和元数据 \u003Clink> 标记的支持能力。它们在所有环境中均以相同方式实现,包括纯客户端代码、SSR与RSC。这将为React Helmet等创新功能库提供了内置支持。",{"type":778,"attrs":1243,"content":1244},{"indent":7,"number":7,"align":120,"origin":120},[1245],{"type":782,"marks":1246,"text":793},[1247],{"type":789,"attrs":1248},{"color":791,"name":792},{"type":778,"attrs":1250,"content":1251},{"indent":7,"number":7,"align":120,"origin":120},[1252],{"type":782,"marks":1253,"text":1257},[1254,1256],{"type":789,"attrs":1255},{"color":791,"name":792},{"type":875},"Actions",{"type":778,"attrs":1259,"content":1260},{"indent":7,"number":7,"align":120,"origin":120},[1261],{"type":782,"marks":1262,"text":793},[1263],{"type":789,"attrs":1264},{"color":791,"name":792},{"type":778,"attrs":1266,"content":1267},{"indent":7,"number":7,"align":120,"origin":120},[1268],{"type":782,"marks":1269,"text":1272},[1270],{"type":789,"attrs":1271},{"color":791,"name":792},"Actions操作函数用于管理从客户端到服务器的数据发送。开发者可以向〈form/〉等元素添加操作函数,使用useFormStatus访问状态,使用useFormState处理结果,并使用useOptimistic积极更新UI。",{"type":778,"attrs":1274,"content":1275},{"indent":7,"number":7,"align":120,"origin":120},[1276],{"type":782,"marks":1277,"text":793},[1278],{"type":789,"attrs":1279},{"color":791,"name":792},{"type":1083,"attrs":1281,"content":1282},{"lang":120},[1283],{"type":782,"text":1284},"import { useOptimistic } from 'react';\nfunction AppContainer() {\n const [optimisticState, addOptimistic] = useOptimistic(\n state,\n // updateFn\n (currentState, optimisticValue) => {\n // merge and return new state\n // with optimistic value\n }\n );\n}",{"type":778,"attrs":1286,"content":1287},{"indent":7,"number":7,"align":120,"origin":120},[1288],{"type":782,"marks":1289,"text":793},[1290],{"type":789,"attrs":1291},{"color":791,"name":792},{"type":778,"attrs":1293,"content":1294},{"indent":7,"number":7,"align":120,"origin":120},[1295],{"type":782,"marks":1296,"text":1299},[1297],{"type":789,"attrs":1298},{"color":791,"name":792},"如何使用React Canary:",{"type":778,"attrs":1301,"content":1302},{"indent":7,"number":7,"align":120,"origin":120},[1303],{"type":782,"marks":1304,"text":793},[1305],{"type":789,"attrs":1306},{"color":791,"name":792},{"type":1083,"attrs":1308,"content":1309},{"lang":120},[1310],{"type":782,"text":1311},"//for npm \nnpm install react@canary react-dom@canary\n//for yarn\nyarn add react@canary react-dom@canary",{"type":778,"attrs":1313,"content":1314},{"indent":7,"number":7,"align":120,"origin":120},[1315],{"type":782,"marks":1316,"text":793},[1317],{"type":789,"attrs":1318},{"color":791,"name":792},{"type":778,"attrs":1320,"content":1321},{"indent":7,"number":7,"align":120,"origin":120},[1322],{"type":782,"marks":1323,"text":1326},[1324],{"type":789,"attrs":1325},{"color":791,"name":792},"相较于直接修改当前生产依赖项,为其创建专用的测试环境显然更加可取。这种方法既能为开发者提供实践反馈,也不会导致实时应用程序遭遇中断。",{"type":778,"attrs":1328,"content":1329},{"indent":7,"number":7,"align":120,"origin":120},[1330],{"type":782,"marks":1331,"text":793},[1332],{"type":789,"attrs":1333},{"color":791,"name":792},{"type":778,"attrs":1335,"content":1336},{"indent":7,"number":7,"align":120,"origin":120},[1337],{"type":782,"marks":1338,"text":1341},[1339],{"type":789,"attrs":1340},{"color":791,"name":792},"至于React Server Component呢?最新发布的信息中并没有提及,文档仍然将其描述为实验性的,但Vercel Next.js中已经包含。官方建议开发人员使用一种框架,团队似乎更愿意在这种情况下考虑服务器组件。文档中写道,“我们希望在一两年内,本页上列出的所有框架都能完全支持这些特性”,包括服务器组件。",{"type":833,"attrs":1343,"content":1344},{"align":120,"level":766},[1345],{"type":782,"marks":1346,"text":1349},[1347],{"type":789,"attrs":1348},{"color":791,"name":792},"React开发者需要做哪些准备?",{"type":778,"attrs":1351,"content":1352},{"indent":7,"number":7,"align":120,"origin":120},[1353],{"type":782,"marks":1354,"text":793},[1355],{"type":789,"attrs":1356},{"color":791,"name":792},{"type":778,"attrs":1358,"content":1359},{"indent":7,"number":7,"align":120,"origin":120},[1360],{"type":782,"marks":1361,"text":1364},[1362],{"type":789,"attrs":1363},{"color":791,"name":792},"总的来说,React 19是一次令人兴奋的更新,带来众多新功能。通过规划和测试,大多数应用程序应该可以顺利完成升级。React团队也在努力平衡新功能与稳定性,帮助开发人员建立起卓越的用户体验。",{"type":778,"attrs":1366,"content":1367},{"indent":7,"number":7,"align":120,"origin":120},[1368],{"type":782,"marks":1369,"text":793},[1370],{"type":789,"attrs":1371},{"color":791,"name":792},{"type":778,"attrs":1373,"content":1374},{"indent":7,"number":7,"align":120,"origin":120},[1375],{"type":782,"marks":1376,"text":1379},[1377],{"type":789,"attrs":1378},{"color":791,"name":792},"目前,React团队仍在权衡应在19版本中引入哪些调整。以下是网友推测可能的后续版本升级方向:",{"type":778,"attrs":1381,"content":1382},{"indent":7,"number":7,"align":120,"origin":120},[1383],{"type":782,"marks":1384,"text":793},[1385],{"type":789,"attrs":1386},{"color":791,"name":792},{"type":861,"content":1388},[1389,1400,1411],{"type":864,"attrs":1390,"content":1391},{"listStyle":120},[1392],{"type":778,"attrs":1393,"content":1394},{"indent":7,"number":7,"align":120,"origin":120},[1395],{"type":782,"marks":1396,"text":1399},[1397],{"type":789,"attrs":1398},{"color":791,"name":792},"React 20将引入新的Profiler API以进行性能跟踪。请提前阅读说明文档并做好准备。",{"type":864,"attrs":1401,"content":1402},{"listStyle":120},[1403],{"type":778,"attrs":1404,"content":1405},{"indent":7,"number":7,"align":120,"origin":120},[1406],{"type":782,"marks":1407,"text":1410},[1408],{"type":789,"attrs":1409},{"color":791,"name":792},"后续React版本将不断增强严格模式,因此强烈建议大家即使并非强制要求,也应采用严格模式检查。",{"type":864,"attrs":1412,"content":1413},{"listStyle":120},[1414],{"type":778,"attrs":1415,"content":1416},{"indent":7,"number":7,"align":120,"origin":120},[1417],{"type":782,"marks":1418,"text":1421},[1419],{"type":789,"attrs":1420},{"color":791,"name":792},"React团队计划继续改进开发者体验、DevTools、测试等,感兴趣的朋友可以关注官方博客并随时获取动态。",{"type":778,"attrs":1423,"content":1424},{"indent":7,"number":7,"align":120,"origin":120},[1425],{"type":782,"marks":1426,"text":793},[1427],{"type":789,"attrs":1428},{"color":791,"name":792},{"type":778,"attrs":1430,"content":1431},{"indent":7,"number":7,"align":120,"origin":120},[1432],{"type":782,"marks":1433,"text":1436},[1434],{"type":789,"attrs":1435},{"color":791,"name":792},"在最终结果发布前,开发者可以通过以下方式为新版本做好准备:",{"type":778,"attrs":1438,"content":1439},{"indent":7,"number":7,"align":120,"origin":120},[1440],{"type":782,"marks":1441,"text":793},[1442],{"type":789,"attrs":1443},{"color":791,"name":792},{"type":861,"content":1445},[1446,1457,1468,1479],{"type":864,"attrs":1447,"content":1448},{"listStyle":120},[1449],{"type":778,"attrs":1450,"content":1451},{"indent":7,"number":7,"align":120,"origin":120},[1452],{"type":782,"marks":1453,"text":1456},[1454],{"type":789,"attrs":1455},{"color":791,"name":792},"关注涉及潜在重大变更的React博文和说明文档。",{"type":864,"attrs":1458,"content":1459},{"listStyle":120},[1460],{"type":778,"attrs":1461,"content":1462},{"indent":7,"number":7,"align":120,"origin":120},[1463],{"type":782,"marks":1464,"text":1467},[1465],{"type":789,"attrs":1466},{"color":791,"name":792},"首先在非关键项目上试用React 19 beta。",{"type":864,"attrs":1469,"content":1470},{"listStyle":120},[1471],{"type":778,"attrs":1472,"content":1473},{"indent":7,"number":7,"align":120,"origin":120},[1474],{"type":782,"marks":1475,"text":1478},[1476],{"type":789,"attrs":1477},{"color":791,"name":792},"提前更新React技能与工具。",{"type":864,"attrs":1480,"content":1481},{"listStyle":120},[1482],{"type":778,"attrs":1483,"content":1484},{"indent":7,"number":7,"align":120,"origin":120},[1485],{"type":782,"marks":1486,"text":1489},[1487],{"type":789,"attrs":1488},{"color":791,"name":792},"关注关于稳定性和候选版本的公告。",{"type":778,"attrs":1491,"content":1492},{"indent":7,"number":7,"align":120,"origin":120},[1493],{"type":782,"marks":1494,"text":793},[1495],{"type":789,"attrs":1496},{"color":791,"name":792},{"type":778,"attrs":1498,"content":1499},{"indent":7,"number":7,"align":120,"origin":120},[1500],{"type":782,"marks":1501,"text":1504},[1502],{"type":789,"attrs":1503},{"color":791,"name":792},"可能发生重大变化的关键领域,包括错误边界、生命周期方法API,以及从渲染属性到hooks的各类变更。更多详细信息将在发布期间逐步公开,但React团队将努力避免那些不必要的重大变更。",{"type":778,"attrs":1506,"content":1507},{"indent":7,"number":7,"align":120,"origin":120},[1508],{"type":782,"marks":1509,"text":793},[1510],{"type":789,"attrs":1511},{"color":791,"name":792},{"type":778,"attrs":1513,"content":1514},{"indent":7,"number":7,"align":120,"origin":120},[1515],{"type":782,"marks":1516,"text":1519},[1517],{"type":789,"attrs":1518},{"color":791,"name":792},"参考链接:",{"type":778,"attrs":1521,"content":1522},{"indent":7,"number":7,"align":120,"origin":120},[1523],{"type":1023,"attrs":1524,"content":1525,"marks":1527},{"href":1025,"title":120,"type":120},[1526],{"type":782,"text":1025},[1528],{"type":789,"attrs":1529},{"color":791,"name":792},{"type":778,"attrs":1531,"content":1532},{"indent":7,"number":7,"align":120,"origin":120},[1533],{"type":1023,"attrs":1534,"content":1536,"marks":1538},{"href":1535,"title":120,"type":120},"https://dev.to/gbengacode/react-19-is-here-oha",[1537],{"type":782,"text":1535},[1539],{"type":789,"attrs":1540},{"color":791,"name":792},{"type":778,"attrs":1542,"content":1543},{"indent":7,"number":7,"align":120,"origin":120},[1544],{"type":1023,"attrs":1545,"content":1547,"marks":1549},{"href":1546,"title":120,"type":120},"https://daily.dev/blog/react-19-everything-you-need-to-know-in-one-place",[1548],{"type":782,"text":1546},[1550],{"type":789,"attrs":1551},{"color":791,"name":792},{"type":778,"attrs":1553,"content":1554},{"indent":7,"number":7,"align":120,"origin":120},[1555],{"type":1023,"attrs":1556,"content":1558,"marks":1560},{"href":1557,"title":120,"type":120},"https://devclass.com/2024/02/22/react-19-introduced-and-forget-compiler-now-in-production-at-instagram-but-not-yet-widely-available/",[1559],{"type":782,"text":1557},[1561],{"type":789,"attrs":1562},{"color":791,"name":792},{},{"uid":7,"nickname":6,"avatar":6,"active":7,"is_early":7,"ucode":6,"uri":6,"author_type":7,"vip":7,"mood":6,"intro":6,"is_sub":767},"https://static-acl-001.geekbang.org/resource/article/e5bd50b4bcb9c38e99006586549a2a7b/content.json?auth_key=1770446345-866775e1cdb24e8ab7baed5afa6bd579-0-1f8c92fa6e33a33be4e34f4dc3aa8d8b&v_t=1708929558059",[],"https://static001.geekbang.org/infoq/audio/e30d0f5b0cab3097bbc5c101c1ebb7e9.mp3",1480293,{"ai_subtitle":6,"ai_subtitle_vtt":6,"subtitle_url":6},[],[],[],[],[1575,1580,1586,1591,1597,1603,1609,1616,1621,1627,1633,1638],{"id":1576,"pid":7,"name":1577,"url":701,"icon":6,"corner_mark":1578,"sort":15,"children":1579},1038,{"type":15,"text":702,"icon":6,"alt":6},{"type":7,"text":6,"icon":6},[],{"id":1581,"pid":7,"name":1582,"url":704,"icon":6,"corner_mark":1583,"sort":766,"children":1585},1039,{"type":15,"text":705,"icon":6,"alt":6},{"type":766,"text":1584,"icon":6},"hot",[],{"id":1587,"pid":7,"name":1588,"url":707,"icon":6,"corner_mark":1589,"sort":311,"children":1590},1040,{"type":15,"text":708,"icon":6,"alt":6},{"type":766,"text":1584,"icon":6},[],{"id":1592,"pid":7,"name":1593,"url":1594,"icon":6,"corner_mark":1595,"sort":768,"children":1596},1041,{"type":15,"text":711,"icon":6,"alt":6},"https://agicamp.com/?utm_source=infoqbar",{"type":766,"text":1584,"icon":6},[],{"id":1598,"pid":7,"name":1599,"url":720,"icon":6,"corner_mark":1600,"sort":1601,"children":1602},1045,{"type":15,"text":721,"icon":6,"alt":6},{"type":7,"text":6,"icon":6},5,[],{"id":1604,"pid":7,"name":1605,"url":716,"icon":6,"corner_mark":1606,"sort":1607,"children":1608},1043,{"type":15,"text":265,"icon":6,"alt":6},{"type":7,"text":6,"icon":6},6,[],{"id":1610,"pid":7,"name":1611,"url":410,"icon":6,"corner_mark":1612,"sort":1614,"children":1615},1053,{"type":15,"text":62,"icon":6,"alt":6},{"type":766,"text":1613,"icon":6},"new",7,[],{"id":1617,"pid":7,"name":1618,"url":723,"icon":6,"corner_mark":1619,"sort":176,"children":1620},1046,{"type":15,"text":724,"icon":6,"alt":6},{"type":7,"text":6,"icon":6},[],{"id":1622,"pid":7,"name":1623,"url":713,"icon":6,"corner_mark":1624,"sort":1625,"children":1626},1042,{"type":15,"text":714,"icon":6,"alt":6},{"type":7,"text":6,"icon":6},9,[],{"id":1628,"pid":7,"name":1629,"url":726,"icon":6,"corner_mark":1630,"sort":1631,"children":1632},1047,{"type":15,"text":727,"icon":6,"alt":6},{"type":7,"text":6,"icon":6},10,[],{"id":1634,"pid":7,"name":1635,"url":729,"icon":6,"corner_mark":1636,"sort":255,"children":1637},1048,{"type":15,"text":730,"icon":6,"alt":6},{"type":7,"text":6,"icon":6},[],{"id":1639,"pid":7,"name":1640,"url":473,"icon":6,"corner_mark":1641,"sort":157,"children":1642},1044,{"type":15,"text":718,"icon":6,"alt":6},{"type":766,"text":1584,"icon":6},[1643,1649,1656,1663],{"id":1644,"pid":1639,"name":1645,"url":473,"icon":6,"corner_mark":1647,"sort":15,"children":1648},1049,{"type":15,"text":1646,"icon":6,"alt":6},"微众银行 · 深圳国际金融科技大赛",{"type":7,"text":6,"icon":6},[],{"id":1650,"pid":1639,"name":1651,"url":1653,"icon":6,"corner_mark":1654,"sort":766,"children":1655},1050,{"type":15,"text":1652,"icon":6,"alt":6},"亚马逊云科技 · 1000 AIdea 应用计划","https://www.infoq.cn/zones/1000aidea/#schedule",{"type":7,"text":6,"icon":6},[],{"id":1657,"pid":1639,"name":1658,"url":1660,"icon":6,"corner_mark":1661,"sort":311,"children":1662},1051,{"type":15,"text":1659,"icon":6,"alt":6},"微软 · AI 开发者挑战赛","https://www.infoq.cn/zones/microsoftai/",{"type":7,"text":6,"icon":6},[],{"id":1664,"pid":1639,"name":1665,"url":1667,"icon":6,"corner_mark":1668,"sort":768,"children":1669},1052,{"type":15,"text":1666,"icon":6,"alt":6},"InfoQ · 大模型技术应用创新大赛","https://www.infoq.cn/zones/geekathon2023",{"type":7,"text":6,"icon":6},[],["Reactive",1671],{"$sisMobile":767},["Set"],["ShallowReactive",1674],{"navConfig":-1,"headerMenuList":-1,"articleDetail":-1},"/article/2t41momj3hw2fbitgljh",{"loginUser":1677,"main":1681},{"loginUser":1678,"userInfo":1680},["EmptyRef",1679],"null",["EmptyRef",1679],{"isMobile":1682,"isBottom":1684,"nowTime":1685,"isImmersion":1687,"messageCount":1688,"pageAction":1690,"showHeaderNotice":1691,"showHeaderFriendship":1692,"noticeLinePopup":1693,"isArticlePage":1694},["EmptyRef",1683],"false",["EmptyRef",1683],["Ref",1686],1770448114984,["EmptyRef",1683],["EmptyRef",1689],"0",["EmptyRef",1679],["EmptyRef",1683],["EmptyRef",1683],["EmptyRef",1683],["EmptyRef",1683]]</script><script>window.__NUXT__={};window.__NUXT__.config={public:{siteUrl:"https://www.infoq.cn","nuxt-scripts":{version:"",defaultScriptOptions:{trigger:"onNuxtReady"}},device:{defaultUserAgent:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.39 Safari/537.36",enabled:true,refreshOnResize:false}},app:{baseURL:"/",buildId:"8a64ffcf-44bb-4d39-a016-66907b0baf24",buildAssetsDir:"static/web/nuxt/www.infoq.cn",cdnURL:"https://static001.geekbang.org"}}</script></body></html>