函式庫 / SDK
react/react avatar
react/react

React:以组件和状态组织界面的 JavaScript 庫

React 用元件拆分介面,並在狀態變化時只更新需要變動的部分;同一套思路同時適用於 Web 與原生應用程式。

250,461 個 Star51,348 個 ForkJavaScriptMIT

秒懂

它是什麼?
react/react 用可组合组件描述用户界面,在數據变化時更新相關部分,并支持渐進接入、服務端渲染和 React Native。
適合誰用?
React 适合需要把界面拆成可復用组件,并讓视图随状态变化的 Web 或原生應用团队;不适合期待 README 单独提供路由、數據获取和部署方案的项目。先在現有頁面挂载一個独立组件,用 `createRoot` 驗證状态更新和構建链,再决定需要哪些额外工具。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫在最近一天內有新的提交。
用什麼語言寫的?
主要是 JavaScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

React 解决的是界面组织

React README 對项目的定义是用于構建用户界面的 JavaScript 庫。它强調声明式、组件化和“学一次、到处寫”:開發者描述不同状态下的视图,React 負責高效更新相應组件;组件可以封装自己的状态,再组合成復杂界面;庫不假設其余技术栈,因此可以逐步加入已有應用。(React项目)

這一定义没有把 React 说成完整後端或全套應用平台。路由、數據请求、構建、服務端部署和状态管理的具體选型需要结合项目文檔。React 也能通過 Node 服務端渲染,并由 React Native 支持移動應用,但這说明的是渲染范围,不是所有平台共享同一套工程配置。(React项目)

组件、状态和 JSX 的關係

README 的示例定义 `HelloMessage` 组件,接收 `name` 属性并返回 `<div>Hello {name}</div>`,然後通過 `createRoot(document.getElementById("container"))` 挂载。示例展示了组件输入、JSX 標记和根节点之間的最小關係。JSX 不是强制语法,但 README 認為它讓代码更易讀,寫法接近 HTML。(React项目)

真正的應用会把頁面拆成更小的组件,并讓状态变化触發视图更新。這里應區分 props、组件自身状态和 DOM:README 说明逻辑寫在 JavaScript 中,可以传递丰富數據,也可以把状态留在 DOM 之外。它没有承诺所有更新都不產生性能成本,復杂树的渲染策略仍需根據實際交互和性能测量調整。(React项目)

渐進接入而非一次重寫

React 從設计之初就支持渐進采用。官方 README 提供 Quick Start、Add React to an Existing Project 和 Create a New React App 三個入口,分别對應體驗庫、向現有项目添加少量 React,以及建立带完整 JavaScript 工具链的新應用。這個路径使迁移可以從一块頁面或一個交互组件開始。(React项目)

已有係统接入前應确認其打包器、TypeScript 配置、测試框架和服務端渲染方式。README 没有要求某個唯一脚手架,也没有在倉庫首頁给出完整生產配置。若只需增量交互,先讓一個组件挂载在現有容器中;若要新建應用,再阅讀官方 installation 和 start-a-new-react-project 指南,避免把两种工程目標混在一起。(React项目)

從官方最小示例開始

最小运行驗證可以准备包含 `container` 元素的 HTML 頁面和一份 JSX 入口,復現 README 的 `createRoot` 與 `HelloMessage` 示例。應观察頁面是否出現 “Hello Taylor”,并在修改 `name` 属性後确認输出随输入变化。這個测試驗證的是编译、挂载和基本渲染链,而不是完整應用的性能。(React项目)

後续可逐步加入状态和事件,再對照官方文檔中的 Adding Interactivity、Managing State 和 Advanced Guides。遇到需要直接操作 DOM、讀取布局或接入非 React 庫的场景,應阅讀 Escape Hatches 相關文檔。README 提供的是文檔地图,未说明你的現有構建链如何配置,因此實際錯誤應以项目的编译输出和浏览器行為定位。(React项目)

文檔、维護與贡献边界

React 官方文檔集中在 `react.dev`,README 列出的章节覆盖 Quick Start、Tutorial、Thinking in React、Installation、Describing the UI、Adding Interactivity、Managing State、Advanced Guides 和 API Reference。倉庫的主要目的,是继续演進 React core,使其更快、更易使用。(React项目)

素材快照记錄默認分支為 `main`,最新 release 為 v19.2.8,許可證為 MIT。贡献流程包括阅讀 contributing guide、構建和测試修改,倉庫還提供 good first issues。版本号只能定位發布線,不能替代對應用升級的回归测試,尤其要核對 JSX 编译、服務端渲染和依赖树。(React项目)

MIT 許可下的选型判断

MIT 許可允許在相應条件下使用和分發 React,但不包含對你的應用行為、浏览器兼容性或业務架構的保證。README 没有把 React 自身描述成路由器、數據庫客户端或部署平台,所以选型時應先列出界面庫之外的缺口。(React项目)

React 适合以组件边界管理復杂交互,并希望從一块現有頁面開始演進的团队。先復現官方 Hello 示例,再在目標工程中驗證一個状态变更、一次事件处理和一次構建產物檢查;如果這三项都能被現有工具链清楚地观察,才有依據扩大迁移范围。(React项目)

React 的接入结果應通過可观察的頁面行為判断。先在含有 `container` 的頁面运行官方 `HelloMessage`,确認 JSX 被正确编译并挂载;再加入一個按钮和状态值,点击後檢查只有预期界面更新。現有项目還要檢查打包器、服務端渲染、测試和 TypeScript 配置,避免把庫級示例当成工程級方案。升級到新版本時,针對 API、事件、構建產物和服務端输出跑回归。React README 提供学习路線和 API 入口,但没有替應用选择路由、數據層或部署方式,這些缺口應保持清楚。

补充核對:React 的接入结果應通過可观察的頁面行為判断。先在含有 `container` 的頁面运行官方 `HelloMessage`,确認 JSX 被正确编译并挂载;再加入一個按钮和状态值,点击後檢查只有预期界面更新。現有项目還要檢查打包器、服務端渲染、测試和 TypeScript 配置,避免把庫級示例当成工程級方案。升級到新版本時,针對 API、事件、構建產物和服務端输出跑回归。React README 提供学习路線和 API 入口,但没有替應用选择路由、數據層或部署方式,這些缺口應保持清楚。

第三项核對:React 的接入结果應通過可观察的頁面行為判断。先在含有 `container` 的頁面运行官方 `HelloMessage`,确認 JSX 被正确编译并挂载;再加入一個按钮和状态值,点击後檢查只有预期界面更新。現有项目還要檢查打包器、服務端渲染、测試和 TypeScript 配置,避免把庫級示例当成工程級方案。升級到新版本時,针對 API、事件、構建產物和服務端输出跑回归。React README 提供学习路線和 API 入口,但没有替應用选择路由、數據層或部署方式,這些缺口應保持清楚。

編輯結論

React 适合需要把界面拆成可復用组件,并讓视图随状态变化的 Web 或原生應用团队;不适合期待 README 单独提供路由、數據获取和部署方案的项目。先在現有頁面挂载一個独立组件,用 `createRoot` 驗證状态更新和構建链,再决定需要哪些额外工具。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記