项目介绍

React 是由 Meta(原 Facebook)创建并维护的开源 JavaScript 库,专门用于构建用户界面。自 2013 年开源以来,React 已经成为全球最受欢迎的前端开发工具之一,被 Netflix、Airbnb、Instagram、Twitter 等大量知名网站和应用采用。

React 的核心理念是通过声明式编程组件化架构来简化 UI 开发。开发者只需描述界面在不同状态下应该呈现的样子,React 会高效地更新和渲染正确的组件。配合 React Native,同一套技能还可以用于构建 iOS 和 Android 原生移动应用。

核心特性

声明式(Declarative)

React 让创建交互式 UI 变得简单。为应用的每个状态设计简洁的视图,React 会在数据变化时高效地更新并渲染恰当的组件。声明式视图使代码更可预测、更易理解和调试。

组件化(Component-Based)

构建管理自身状态的封装组件,然后将它们组合成复杂的 UI。由于组件逻辑是用 JavaScript 编写而非模板语言,因此可以轻松传递丰富的数据,并将状态与 DOM 分离。

一次学习,随处编写

React 不假设您的其余技术栈。您可以在不重写现有代码的情况下开发新功能。React 还可以使用 Node 进行服务端渲染,使用 React Native 开发移动应用。

  • 虚拟 DOM — React 使用虚拟 DOM 技术,最小化真实 DOM 操作,极大提升渲染性能。
  • JSX 语法 — 类 HTML 的 JavaScript 语法扩展,让 UI 代码更直观、更易读。
  • Hooks — 函数组件中使用状态和其他 React 特性的方式,如 useState、useEffect、useContext 等。
  • 单向数据流 — 数据从父组件流向子组件,使应用状态更可预测,调试更容易。
  • 服务端渲染(SSR) — 支持服务端渲染,改善首屏加载速度和 SEO 表现。
  • React Server Components — 最新特性,允许组件在服务端运行,减少客户端 JavaScript 体积。

快速开始

React 支持渐进式采用,您可以按需使用少量或大量的 React 功能:

方式说明
快速体验访问 react.dev/learn 在线体验 React 的基本概念。
添加到现有项目在已有的 HTML 页面或项目中逐步引入 React,无需重写整个应用。
创建新项目使用 Next.js、Remix 等框架创建全新的 React 应用。

基本示例代码:

import { createRoot } from 'react-dom/client';

function HelloMessage({ name }) {
  return <div>Hello {name}</div>;
}

const root = createRoot(document.getElementById('container'));
root.render(<HelloMessage name="World" />);

使用 npm 安装:

# 安装 React 核心包
npm install react react-dom

# 使用 Next.js 创建新项目(推荐)
npx create-next-app@latest my-app
cd my-app
npm run dev

生态系统

Next.js

最流行的 React 全栈框架,支持 SSR、SSG、API 路由、文件路由等功能,是构建生产级 React 应用的首选。

React Native

使用 React 技术构建原生 iOS 和 Android 移动应用,一套代码同时支持多个平台。

Redux / Zustand

流行的状态管理方案。Redux 适合大型复杂应用,Zustand 则提供更简洁轻量的状态管理体验。

React Router

React 应用的标准路由库,支持声明式路由配置、动态路由匹配、嵌套路由等。

TanStack Query

强大的异步数据管理库,处理数据获取、缓存、同步和更新,简化服务端状态管理。

开发工具

React DevTools 浏览器扩展可以检查组件树、查看 props 和 state、分析性能瓶颈。

学习资源

资源说明链接
官方文档最权威的 React 学习资源,包含教程、API 参考和高级指南react.dev
Quick Start官方快速入门教程,适合 React 新手react.dev/learn
井字棋教程经典的 React 入门教程,通过构建井字棋游戏学习基础概念Tutorial
Thinking in React理解 React 思维方式的必读指南Thinking in React
API Reference完整的 API 参考文档API Reference

常见问题

React 是框架还是库?
React 官方定义自己为一个"用于构建用户界面的 JavaScript 库",而非完整的框架。它专注于视图层(View),不包含路由、状态管理等功能。但配合 Next.js 等全栈框架使用时,可以获得完整的框架体验。
React 和 Vue 有什么区别?
两者都是优秀的前端 UI 库/框架。React 使用 JSX(JavaScript 中写 HTML),Vue 使用模板语法(更接近传统 HTML)。React 的生态系统更庞大,企业采用率更高;Vue 的学习曲线更平缓,中文文档更完善。选择取决于团队偏好和项目需求。
学习 React 需要哪些前置知识?
您需要掌握 HTML、CSS 和 JavaScript 基础,特别是 ES6+ 的特性(箭头函数、解构赋值、模块导入导出、Promise 等)。了解 npm/yarn 包管理工具也很有帮助。
React 的许可证是什么?
React 使用 MIT 开源许可证,您可以在商业和非商业项目中自由使用。2017 年 React 曾使用 BSD+Patents 许可证引发争议,但后来已切换为更宽松的 MIT 许可证。
现在还值得学习 React 吗?
绝对值得。React 拥有最庞大的前端生态系统和社区,在全球就业市场上的需求量依然最高。React 团队持续推出创新特性(如 Server Components、React Compiler),确保它在未来几年仍将是主流选择。

社区议题

以下是该项目当前开放的 Issue(按评论数排序),共 189 条,标题已翻译为中文供参考。

编号 议题标题(中文翻译 / 英文原文) 创建日期 评论
#13991 Hooks + multiple instances of React
Hooks + multiple instances of React
Type: DiscussionComponent: Hooks
2018-10-27 515
#11347 RFC: Plan for 自定义 element attributes/properties in React 19
RFC: Plan for custom element attributes/properties in React 19
Component: DOMType: Discussion
2017-10-24 286
#1739 支持 asynchronous 服务器 渲染 (waiting for data before 渲染)
Support asynchronous server rendering (waiting for data before rendering)
Type: Feature RequestComponent: Server RenderingComponent: Component APIResolution: Backlog
2014-06-24 146
#11503 Formalize top-level ES exports
Formalize top-level ES exports
Component: Build InfrastructureType: DiscussionType: Breaking ChangeReact Core Team
2017-11-09 133
#11387 createPortal: 支持 option to stop propagation of events in React tree
createPortal: support option to stop propagation of events in React tree
Type: Feature RequestComponent: DOM
2017-10-27 128
#17355 "应该 not already be working" in Firefox after a breakpoint/alert
"Should not already be working" in Firefox after a breakpoint/alert
Type: BugDifficulty: mediumType: Needs Investigation适合新手
2019-11-13 123
#13206 [Umbrella] Releasing Suspense
[Umbrella] Releasing Suspense
Type: UmbrellaReact Core Team
2018-07-13 119
#11734 value|defaultValue={Symbol|Function} 应该 be ignored, not stringified
value|defaultValue={Symbol|Function} should be ignored, not stringified
Component: DOMReact Core Team
2017-12-01 105
#29034 [React 19] 允许 opting out of automatic form reset when Form Actions are used
[React 19] allow opting out of automatic form reset when Form Actions are used
React 19
2024-05-09 95
#10389

Type: Feature RequestComponent: DOMHTML
2017-08-04 92
#24430 缺陷: Hydration mismatch 错误 due to 插件 generating script tag on top
Bug: Hydration mismatch error due to plugins generating script tag on top
Component: Server RenderingResolution: Backlog
2022-04-24 91
#1159 Provide a way to handle browser-autocompleted form values on controlled 组件
Provide a way to handle browser-autocompleted form values on controlled components
Type: BugComponent: DOM
2014-02-22 88
#15317 [Concurrent] Safely disposing uncommitted objects
[Concurrent] Safely disposing uncommitted objects
Type: Discussion
2019-04-04 77
#16873 [eslint-插件-react-hooks] 允许 configuring 自定义 hooks as "static"
[eslint-plugin-react-hooks] allow configuring custom hooks as "static"
Type: EnhancementComponent: ESLint Rules
2019-09-24 69
#16265 警告 for 'exhaustive-deps' keeps asking for the full 'props' object instead of 允许 single 'props' properties as 依赖
Warning for 'exhaustive-deps' keeps asking for the full 'props' object instead of allowing single 'props' properties as dependencies
Type: DiscussionComponent: ESLint Rules
2019-07-31 65
#7901 Bypass synthetic event system for Web 组件 events
Bypass synthetic event system for Web Component events
Type: Feature RequestType: Discussion
2016-10-06 64
#6436 支持 Passive Event Listeners
Support Passive Event Listeners
Type: Feature RequestComponent: DOMType: Big PictureReact Core Team
2016-04-07 62
#285 Declarative API for installing global DOM event handlers
Declarative API for installing global DOM event handlers
Type: Feature RequestComponent: DOMResolution: BacklogPartner
2013-08-21 62
#10441 Cross-origin 错误 passed to componentDidCatch incorrectly
Cross-origin error passed to componentDidCatch incorrectly
Component: DOMType: Needs InvestigationReact Core Team
2017-08-11 59
#15344 useReducer's dispatch 应该 return a promise which resolves once its action has been delivered
useReducer's dispatch should return a promise which resolves once its action has been delivered
Type: Feature RequestComponent: Hooks
2019-04-07 56
#3926 变更 event fires extra times before IME composition ends
Change event fires extra times before IME composition ends
Type: BugComponent: DOM
2015-05-21 56
#11565 React-测试-renderer: 支持 for portal
React-test-renderer: support for portal
Type: Feature RequestComponent: Test RendererReact Core Team
2017-11-15 49
#10474 The fake event trick for rethrowing 错误 in DEV fires unexpected global 错误 handlers and makes 测试 harder
The fake event trick for rethrowing errors in DEV fires unexpected global error handlers and makes testing harder
Component: DOMType: Discussion
2017-08-16 49
#7249 Attributes and properties for 自定义 组件
Attributes and properties for Custom Components
Type: Feature RequestComponent: DOM
2016-07-12 48
#9999 False positive getDefaultProps 警告 when mixing development and production versions
False positive getDefaultProps warning when mixing development and production versions
Type: BugComponent: Core UtilitiesDifficulty: medium
2017-06-19 42
#15069 Can an 错误 boundary prevent React's 错误 logging?
Can an error boundary prevent React's error logging?
Type: Feature Request
2019-03-08 40
#4595 Externalize the State Tree (or alternatives)
Externalize the State Tree (or alternatives)
Type: Big PictureReact Core Team
2015-08-10 40
#3965 支持 for reparenting
Support for reparenting
Type: Feature RequestComponent: Component APIResolution: Backlog
2015-05-27 40
#30580 [React 19] Controlled `` component is subject to automatic form reset
Type: BugReact 19
2024-08-02 39
#11211 Use the native `beforeinput` event if it's 支持
Use the native `beforeinput` event if it's supported
Type: Feature RequestComponent: DOM
2017-10-13 39
#15278 useMemo / useCallback cache busting opt out
useMemo / useCallback cache busting opt out
Type: Discussion
2019-03-31 38
#24417 [DevTools 缺陷]: 错误 in event handler: 错误: Attempting to use a disconnected port object
[DevTools Bug]: Error in event handler: Error: Attempting to use a disconnected port object
Type: BugStatus: UnconfirmedComponent: Developer Tools
2022-04-21 37
#17256 "NotFoundError: Failed to execute 'removeChild' on 'Node'" when using React.Fragment <> with Chrome extension which does not modify the DOM tree below the root div of the React app
"NotFoundError: Failed to execute 'removeChild' on 'Node'" when using React.Fragment <> with Chrome extension which does not modify the DOM tree below the root div of the React app
Type: Needs Investigation
2019-11-03 37
#31819 [React 19] Suspense throttling behavior (`FALLBACK_THROTTLE_MS`) kicks in too often
[React 19] Suspense throttling behavior (`FALLBACK_THROTTLE_MS`) kicks in too often
Type: DiscussionReact 19
2024-12-17 36
#13838 head > meta > content escaping issue
head > meta > content escaping issue
Component: Server RenderingType: Needs Investigation
2018-10-12 36
#13097 添加 支持 for hydrating portals
Add support for hydrating portals
Type: Feature Request
2018-06-22 36
#10021 功能请求: 添加 a "module" entry in package.json to export ES2015 版本 of React
Feature request: Add a "module" entry in package.json to export ES2015 version of React
Component: Build InfrastructureType: Feature Request
2017-06-21 36
#14543 添加 `get` function to `useState`
Add `get` function to `useState`
Type: Discussion
2019-01-08 34
#34743 缺陷: react-hooks/set-state-in-effect overly strict?
Bug: react-hooks/set-state-in-effect overly strict?
Status: UnconfirmedComponent: React Compiler
2025-10-05 33
#25843 [DevTools 缺陷]: Electron 支持 损坏 in 4.27
[DevTools Bug]: Electron support broken in 4.27
Type: BugComponent: Developer Tools
2022-12-07 33
#24283 Suppress "Download the React DevTools" log for a better development experience
Suppress "Download the React DevTools" log for a better development experience
Type: Feature RequestComponent: Developer Toolsgood first issue (taken)
2022-04-06 33
#19150 Proposition about onInput/onChange
Proposition about onInput/onChange
Status: Unconfirmed
2020-06-18 33
#15446 Events before 客户端 Side Hydration
Events before Client Side Hydration
Resolution: Backlog
2019-04-18 33
#1259 Stop doing data-*, aria-*, start using dataSet
Stop doing data-*, aria-*, start using dataSet
Type: Feature RequestComponent: DOMResolution: BacklogPartner
2014-03-14 33
#13044 允许 Portals to be used for Reparenting
Allow Portals to be used for Reparenting
Type: Feature Request
2018-06-14 33
#18402 Batching makes it difficult to perform imperative actions like focus
Batching makes it difficult to perform imperative actions like focus
Type: Discussion
2020-03-27 31
#15240 Dancing between state and effects - a real-world use case
Dancing between state and effects - a real-world use case
Type: Discussion
2019-03-28 31
#15486
open attribute not synchronised
open attribute not synchronised
Type: Needs Investigation
2019-04-24 29
#12615 Unexpected 警告 when hydrating with portal and SSR
Unexpected warning when hydrating with portal and SSR
Type: BugDifficulty: medium
2018-04-15 29
#26465 [DevTools 缺陷] Cannot 添加 child "1161" to parent "942" because parent node was not found in the Store.
[DevTools Bug] Cannot add child "1161" to parent "942" because parent node was not found in the Store.
Type: BugStatus: UnconfirmedResolution: Needs More InformationComponent: Developer Tools
2023-03-23 28
#24670 缺陷: React 18 Strict mode does not simulate unsetting and re-setting DOM refs
Bug: React 18 Strict mode does not simulate unsetting and re-setting DOM refs
Type: Needs InvestigationReact 18
2022-06-03 28
#16956 Design decision: 为什么 do we 需要 the stale closure problem in the first place?
Design decision: why do we need the stale closure problem in the first place?
Type: Discussion
2019-09-30 29
#32950 [Compiler 缺陷]: Coverage report shows 缺失 branch coverage
[Compiler Bug]: Coverage report shows missing branch coverage
Type: BugStatus: UnconfirmedComponent: React Compiler
2025-04-17 27
#20359 TypeError: Cannot read property 'setExtraStackFrame' of undefined
TypeError: Cannot read property 'setExtraStackFrame' of undefined
Type: Discussion
2020-12-01 27
#16416 SSR: Cannot set property 'memoizedState' of null
SSR: Cannot set property 'memoizedState' of null
Type: Bug
2019-08-16 27
#14357 findDOMNode deprecation
findDOMNode deprecation
Type: Feature Request
2018-11-29 26
#24391 缺陷: Internal React 错误: Expected static flag was 缺失
Bug: Internal React error: Expected static flag was missing
Type: BugStatus: Unconfirmed
2022-04-17 25
#18229 [功能请求] 允许 依赖 length to 变更 in hooks
[Feature Request] Allow dependency length to change in hooks
Type: EnhancementStatus: Unconfirmed
2020-03-05 25
#28492 缺陷: onBlur is not firing in IOS Chrome when trigger done button
Bug: onBlur is not firing in IOS Chrome when trigger done button
Status: Unconfirmed
2024-03-05 24
#25415 [DevTools 缺陷]: "Message length exceeded maximum 允许 length" when profiling a complex application
[DevTools Bug]: "Message length exceeded maximum allowed length" when profiling a complex application
Type: BugStatus: UnconfirmedComponent: Developer Tools
2022-10-04 24
#10703 A faster diff algorithm
A faster diff algorithm
Type: DiscussionComponent: Reconciler
2017-09-13 24
#34775 缺陷: eslint-react-hooks false positives on refs rule
Bug: eslint-react-hooks false positives on refs rule
Type: BugComponent: React CompilerCompiler: Ref Validation
2025-10-08 23
#32580 [Compiler 缺陷]: `enableFunctionOutlining` breaks `react-native-reanimated` API callbacks
[Compiler Bug]: `enableFunctionOutlining` breaks `react-native-reanimated` API callbacks
Type: BugStatus: UnconfirmedComponent: React Compiler
2025-03-12 23
#29855 [React 19] `use` is significantly slower in some scenarios than throwing a Promise
[React 19] `use` is significantly slower in some scenarios than throwing a Promise
React 19
2024-06-11 23
#28926 [React 19] Removal of `ReactDOM.findDOMNode`
[React 19] Removal of `ReactDOM.findDOMNode`
Type: EnhancementReact 19
2024-04-26 23
#9142 No blur event fired when button is 禁用/移除
No blur event fired when button is disabled/removed
Type: BugComponent: DOM
2017-03-09 23
#24232 服务器-side 渲染 性能 degradation with renderToPipeableStream
Server-side rendering performance degradation with renderToPipeableStream
Status: UnconfirmedType: DiscussionReact 18
2022-03-31 22
#20377 CRA: Fast Refresh breaks embedded DevTools backend
CRA: Fast Refresh breaks embedded DevTools backend
Type: DiscussionComponent: Developer ToolsComponent: Fast Refresh
2020-12-04 22
#16547 Devtools v4 does not work with Firefox's private window
Devtools v4 does not work with Firefox's private window
Type: BugComponent: Developer Tools
2019-08-22 22
#15726 Improving the 组件 logging/debugging experience
Improving the component logging/debugging experience
Type: DiscussionReact Core Team
2019-05-23 22
#11896 Stop syncing value attribute for controlled inputs
Stop syncing value attribute for controlled inputs
Component: DOMType: DiscussionType: Breaking Change
2017-12-20 22
#9402 A number input will always have left pad 0 though parseFloat value in onChange
A number input will always have left pad 0 though parseFloat value in onChange
Type: BugComponent: DOM
2017-04-11 22
#32030 缺陷: React 19 cannot run apps in both dev & production mode simultaneously
Bug: React 19 cannot run apps in both dev & production mode simultaneously
Status: Unconfirmed
2025-01-09 21
#26374 缺陷: `createRoot` function from React@18 break the css `:target`
Bug: `createRoot` function from React@18 break the css `:target`
Status: Unconfirmed
2023-03-12 21
#23301 缺陷: autoFocus 损坏 inside
Bug: autoFocus broken inside
Type: Bug
2022-02-15 21
#10713 What 应该 portals do when container has a child managed by React?
What should portals do when container has a child managed by React?
Component: DOMType: Discussion
2017-09-14 21
#8938 Clear button on iOS date input does not return correct event value
Clear button on iOS date input does not return correct event value
Type: BugComponent: DOM
2017-02-07 21
#32852 [DevTools 缺陷] Cannot 添加 node "909" because a node with that id is already in the Store.
[DevTools Bug] Cannot add node "909" because a node with that id is already in the Store.
Type: BugStatus: UnconfirmedComponent: Developer Tools
2025-04-11 20
#29045 缺陷: eslint-插件-react-hooks 文档 might be misleading
Bug: eslint-plugin-react-hooks documentation might be misleading
Status: Unconfirmed
2024-05-12 20
#26608 缺陷: MessageChannel in Scheduler prevents Jest 测试 from exiting
Bug: MessageChannel in Scheduler prevents Jest test from exiting
Status: Unconfirmed
2023-04-12 20
#22692 [React 18] Selective Hydration fails hydration when using context api
[React 18] Selective Hydration fails hydration when using context api
Type: DiscussionReact 18
2021-11-04 20
#22315 缺陷: Native 组件 Stacks don't respect function "displayName" in Firefox
Bug: Native Component Stacks don't respect function "displayName" in Firefox
Status: UnconfirmedType: Discussion
2021-09-14 20
#15187 Edge 18 & IE 11 服务器 mismatch with SVG icons
Edge 18 & IE 11 server mismatch with SVG icons
Component: Server RenderingType: Needs Investigation
2019-03-21 20
#12811 Provide ways to do post-mortem analysis of “Maximum 更新 depth exceeded” 错误 in production.
Provide ways to do post-mortem analysis of “Maximum update depth exceeded” error in production.
Type: Feature Request
2018-05-15 20
#12525 Provide a way to detect infinite 组件 渲染 recursion in development
Provide a way to detect infinite component rendering recursion in development
Type: Feature Request
2018-04-03 20
#9657 [RFC] onChange -> onInput, and don't polyfill onInput for uncontrolled 组件
[RFC] onChange -> onInput, and don't polyfill onInput for uncontrolled components
Component: DOMType: DiscussionType: Breaking ChangeReact Core Team
2017-05-10 20
#34045 [Compiler 缺陷]: False positives “calling setState synchronously within an effect body” with stable primitive values
[Compiler Bug]: False positives “calling setState synchronously within an effect body” with stable primitive values
Type: Feature RequestComponent: React Compiler
2025-07-29 19
#25884 [DevTools 缺陷] Cannot 移除 node "XX" because no matching node was found in the Store.
[DevTools Bug] Cannot remove node "XX" because no matching node was found in the Store.
Type: BugStatus: UnconfirmedComponent: Developer Tools
2022-12-14 19
#21668 问题: Transition starvation in React 18?
Question: Transition starvation in React 18?
Resolution: Needs More InformationType: DiscussionReact 18
2021-06-12 19
#17275 Is it possible to share contexts between renderers?
Is it possible to share contexts between renderers?
Type: EnhancementComponent: Reconciler
2019-11-05 19
#14404 eslint-插件-react-hooks 应该 report 错误 inside unnamed functions
eslint-plugin-react-hooks should report errors inside unnamed functions
Type: Feature RequestComponent: Hooks
2018-12-08 19
#35395 Perf: react-hooks ESLint 插件 (eslint-插件-react-hooks) rules are extremely slow, dominating lint time
Perf: react-hooks ESLint plugin (eslint-plugin-react-hooks) rules are extremely slow, dominating lint time
Type: Feature RequestComponent: React CompilerComponent: ESLint Rules
2025-12-19 18
#25447 [DevTools 缺陷]: 警告 are too "loud", mislabeled and make console difficult to use
[DevTools Bug]: Warnings are too "loud", mislabeled and make console difficult to use
Type: BugStatus: Unconfirmed
2022-10-07 18
#22656 缺陷: "The above 错误…" 应该 appear after the 错误 message but appears before (for some 错误)
Bug: "The above error…" should appear after the error message but appears before (for some errors)
Type: BugSize: Medium
2021-10-30 18
#19991 缺陷: Infinite 渲染 resulting in freezing of tab/browser
Bug: Infinite rendering resulting in freezing of tab/browser
2020-10-09 18
#13104 添加 支持 for SyntheticKeyboardEvent#isComposing
add support for SyntheticKeyboardEvent#isComposing
Type: Feature RequestComponent: DOM
2018-06-24 19
#12989 Consider removing Mobile Safari empty onclick hack
Consider removing Mobile Safari empty onclick hack
Component: DOMType: Needs InvestigationReact Core Team
2018-06-07 18
#11369 React 应该 recognize the `valueAsDate` property on DOM elements
React should recognize the `valueAsDate` property on DOM elements
Type: Feature RequestComponent: DOM
2017-10-26 18
#6217 onResponderGrant called before onResponderTerminate
onResponderGrant called before onResponderTerminate
Type: BugComponent: DOM
2016-03-08 18
#31695 [React 19] Controlled checkboxes are reset by form submission and form.reset()
[React 19] Controlled checkboxes are reset by form submission and form.reset()
React 19
2024-12-07 17
#29902 [React 19] Using spread with binary conditional in JSX causes 错误 in dev env for case of using legacy JSX transform
[React 19] Using spread with binary conditional in JSX causes error in dev env for case of using legacy JSX transform
React 19
2024-06-14 17
#27158 [DevTools 缺陷]: shows "This 页面 doesn't appear to be using React" for every react website on Firefox 115.0.2
[DevTools Bug]: shows "This page doesn't appear to be using React" for every react website on Firefox 115.0.2
Type: BugStatus: UnconfirmedResolution: Needs More InformationComponent: Developer Tools
2023-07-27 17
#22727 [DevTools 缺陷]: Chrome extension's settings reset after every reload
[DevTools Bug]: Chrome extension's settings reset after every reload
Type: BugStatus: UnconfirmedResolution: Needs More InformationComponent: Developer Tools
2021-11-09 17
#21094 缺陷: Radio/Checkbox inputs not triggered when setting state in listener on a parent element
Bug: Radio/Checkbox inputs not triggered when setting state in listener on a parent element
Type: BugComponent: DOMStatus: Unconfirmed
2021-03-25 17
#19851 缺陷: 组件 with a Symbol as key, causes Crash
Bug: Component with a Symbol as key, causes Crash
Type: Discussion
2020-09-17 17
#18098 缺陷: Unexpected 渲染
Bug: Unexpected render
Type: Bug
2020-02-21 17
#16477 DevTools: Profiler: Show which hooks 变更
DevTools: Profiler: Show which hooks changed
Type: EnhancementComponent: Developer ToolsReact Core Team
2019-08-19 17
#16087 [Umbrella] Memory Leaks
[Umbrella] Memory Leaks
React Core Team
2019-07-09 17
#14398 calculating context 变更 in componentDidUpdate
calculating context changes in componentDidUpdate
Type: Feature Request
2018-12-06 17
#14285 Warn when calling dispatch() from useEffect() cleanup function on unmounting
Warn when calling dispatch() from useEffect() cleanup function on unmounting
Type: DiscussionComponent: Hooks
2018-11-20 17
#11417 Treat value={null} as empty string
Treat value={null} as empty string
Component: DOMType: Discussion
2017-10-31 17
#34556 缺陷: [React 19.1/19.2] useEffect does not run after 变更 依赖 due to startTransition
Bug: [React 19.1/19.2] useEffect does not run after changed dependencies due to startTransition
Status: Unconfirmed
2025-09-22 16
#31906 缺陷: source maps are 缺失 from react npm packages
Bug: source maps are missing from react npm packages
Status: UnconfirmedResolution: Stale
2024-12-25 16
#31702 [Compiler 缺陷]: 服务器 组件 built externally by the compiler 错误 when 渲染 in app
[Compiler Bug]: server components built externally by the compiler error when rendered in app
Type: BugComponent: React Compiler
2024-12-08 16
#28956 [React 19] react-reconciler README is 缺失 scheduler and form hooks
[React 19] react-reconciler README is missing scheduler and form hooks
React 19
2024-04-30 16
#27670 缺陷: useSyncExternalStore does not schedule 更新 after mutation
Bug: useSyncExternalStore does not schedule update after mutation
Type: Bug
2023-11-08 16
#26069 缺陷: Memory leak in react while focusing input elements
Bug: Memory leak in react while focusing input elements
Type: Bug
2023-01-27 16
#22626 React 18 - waterfall suspensions re-trigger the Suspense boundary
React 18 - waterfall suspensions re-trigger the Suspense boundary
Type: DiscussionReact 18
2021-10-26 16
#15207 Memoized 组件 应该 forward displayName
Memoized components should forward displayName
Type: EnhancementComponent: Shallow Renderer
2019-03-25 16
#15154 Effect memoization and immutable data structures
Effect memoization and immutable data structures
Type: Discussion
2019-03-19 16
#14319 API for display name on forwardRef, memo and potential future exotic 组件
API for display name on forwardRef, memo and potential future exotic components
Type: Feature Request
2018-11-24 16
#12363 React onBlur events not firing during unmount
React onBlur events not firing during unmount
Type: BugComponent: DOMType: Needs Investigation
2018-03-13 16
#10109 Mouseenter event not triggered when cursor moves from 禁用 button
Mouseenter event not triggered when cursor moves from disabled button
Type: BugComponent: DOM
2017-07-05 16
#34752 [Compiler 缺陷]: Compiler incorrectly assumes non-nullability and lifts property access
[Compiler Bug]: Compiler incorrectly assumes non-nullability and lifts property access
Type: BugStatus: UnconfirmedComponent: React Compiler
2025-10-06 15
#32561 缺陷: `StrictMode` reruns effects when a child is moved in an array
Bug: `StrictMode` reruns effects when a child is moved in an array
Type: BugReact 19
2025-03-09 15
#30799 [React 19] Upgrading React causes infinite refetching
[React 19] Upgrading React causes infinite refetching
React 19
2024-08-23 15
#27728 [DevTools 缺陷] Cannot 添加 node "1590" because a node with that id is already in the Store.
[DevTools Bug] Cannot add node "1590" because a node with that id is already in the Store.
Type: BugStatus: UnconfirmedComponent: Developer Tools
2023-11-20 15
#26340 [DevTools 缺陷] Cannot 添加 node "621" because a node with that id is already in the Store.
[DevTools Bug] Cannot add node "621" because a node with that id is already in the Store.
Type: BugStatus: UnconfirmedComponent: Developer Tools
2023-03-08 15
#22122 [DevTools 缺陷]: Cannot hover/click elements after scrolling
[DevTools Bug]: Cannot hover/click elements after scrolling
Type: BugStatus: UnconfirmedComponent: Developer Tools
2021-08-18 15
#19671 讨论: Async cleanups of useEffect
Discussion: Async cleanups of useEffect
Type: Discussion
2020-08-21 15
#18499 Provide a renderer-agnostic equivalent of setNativeProps()
Provide a renderer-agnostic equivalent of setNativeProps()
Type: Feature RequestType: Discussion
2020-04-05 15
#18116 React retains 组件 references to old 渲染 causing browser memory to increase
React retains component references to old renders causing browser memory to increase
Type: Needs Investigation
2020-02-24 15
#13499 Number input breaks when letter "e" is entered
Number input breaks when letter "e" is entered
Component: DOMType: Needs Investigation
2018-08-28 15
#10871 Multiple onFocus events fired on single focus in Safari
Multiple onFocus events fired on single focus in Safari
Type: BugComponent: DOM
2017-09-27 15
#10143 移除 unstable_renderIntoContainer
Remove unstable_renderIntoContainer
Type: DiscussionComponent: ReconcilerType: Breaking ChangeReact Core Team
2017-07-11 15
#33038 缺陷: New Customizable Select: option containing span, Select containing button causes hydration 警告
Bug: New Customizable Select: option containing span, Select containing button causes hydration warning
Status: Unconfirmed
2025-04-28 14
#32339 缺陷: React Dev Tools injects its own js code (installHook.js) and then tries to download the source map if its own code
Bug: React Dev Tools injects its own js code (installHook.js) and then tries to download the source map if its own code
Status: Unconfirmed
2025-02-08 14
#30994 [React 19] [缺陷] SVG with dangerouslySetInnerHTML content does not trigger first click
[React 19] [bug] SVG with dangerouslySetInnerHTML content does not trigger first click
Type: BugReact 19
2024-09-18 14
#22794 React 18 not passive wheel / touch event listeners 支持
React 18 not passive wheel / touch event listeners support
Type: DiscussionReact 18
2021-11-19 14
#20770 缺陷: 禁用 button state 更新 prevents `scrollIntoView`
Bug: Disabled button state update prevents `scrollIntoView`
Type: BugComponent: DOM
2021-02-09 14
#19637 Portal Event Bubbling Use Cases
Portal Event Bubbling Use Cases
Type: Discussion
2020-08-18 14
#19162 Hiding MUI 组件 inside React Developer Tools
Hiding MUI Components inside React Developer Tools
Type: DiscussionComponent: Developer Tools
2020-06-19 14
#7769 input autoFocus causes focus to be emitted before ref
input autoFocus causes focus to be emitted before ref
Type: BugComponent: DOMDifficulty: challenging
2016-09-19 14
#7711 [缺陷] click not 禁用 on

[bug] click not disabled on

Type: BugComponent: DOM
2016-09-13 14
#7328 IE 11 and Edge no longer prompt to remember password on controlled form
IE 11 and Edge no longer prompt to remember password on controlled form
Type: BugComponent: DOM
2016-07-21 14
#7135 onMouseEnter propagation in double reactroot
onMouseEnter propagation in double reactroot
Type: BugComponent: DOM
2016-06-28 14
#34172 [Compiler 缺陷]: Memoization: Compilation skipped because existing memoization 可以 not be preserved
[Compiler Bug]: Memoization: Compilation skipped because existing memoization could not be preserved
Type: BugStatus: UnconfirmedComponent: React Compiler
2025-08-11 13
#33041 Reconsider providing a cleaner hook-based solution to derived state
Reconsider providing a cleaner hook-based solution to derived state
Status: Unconfirmed
2025-04-28 13
#31446 缺陷: eslint-插件-react-hooks@5.0.0 only detects english 组件 names
Bug: eslint-plugin-react-hooks@5.0.0 only detects english component names
Status: Unconfirmed
2024-11-07 13
#30551 [React 19] revive `react-测试-renderer`
[React 19] revive `react-test-renderer`
React 19
2024-07-31 13
#27185 [DevTools 缺陷] Cannot 添加 node "1" because a node with that id is already in the Store.
[DevTools Bug] Cannot add node "1" because a node with that id is already in the Store.
Type: BugStatus: UnconfirmedComponent: Developer Tools
2023-08-03 13
#25282 缺陷: onChange handler is lost between re-渲染
Bug: onChange handler is lost between re-renders
Component: DOMType: Needs Investigation
2022-09-16 13
#22470 缺陷: Submit events from a button inside a portal don't bubble up to a form in its React DOM Ancestry.
Bug: Submit events from a button inside a portal don't bubble up to a form in its React DOM Ancestry.
Component: DOMStatus: UnconfirmedType: Discussion
2021-09-30 14
#22214 缺陷: Nested ReactDOMServer.renderToString calls cause React hooks to throw 无效 hook exception
Bug: Nested ReactDOMServer.renderToString calls cause React hooks to throw invalid hook exception
Type: BugComponent: Server RenderingType: Needs Investigation
2021-08-30 13
#22034 [DevTools 缺陷]: React Devtools on Firefox initially shows an empty (blank) 组件 tree
[DevTools Bug]: React Devtools on Firefox initially shows an empty (blank) component tree
Type: BugStatus: UnconfirmedComponent: Developer Tools
2021-08-05 13
#21985 React CM Mode (18) stacking app during hydrateRoot
React CM Mode (18) stacking app during hydrateRoot
Type: DiscussionReact 18
2021-07-29 13
#19034 exhaustive-deps: 自定义 effects 应该 支持 async functions
exhaustive-deps: custom effects should support async functions
Type: DiscussionComponent: ESLint Rules
2020-05-28 13
#15171 dangerouslySetInnerHTML is left empty on 客户端 渲染 on top of bad 服务器 markup when 渲染 HTML
dangerouslySetInnerHTML is left empty on client render on top of bad server markup when rendering HTML
Type: BugType: Needs Investigation
2019-03-20 13
#14962 Password input type causes memory leak
Password input type causes memory leak
Type: Needs Investigation
2019-02-26 13
#13450 UMD builds are not 启用 on UNPKG
UMD builds are not enabled on UNPKG
Type: Discussion
2018-08-21 13
#13424 onChange doesn't fire if input re-渲染 due to a setState() in a non-React capture phase listener
onChange doesn't fire if input re-renders due to a setState() in a non-React capture phase listener
Type: BugComponent: DOMReact Core Team
2018-08-17 13
#11877 Number input gets cleared when typing period as decimal mark
Number input gets cleared when typing period as decimal mark
Type: BugComponent: DOM
2017-12-18 13
#1355 touchmove doesn't fire on 移除 element
touchmove doesn't fire on removed element
Type: EnhancementComponent: DOMPartner
2014-04-04 13
#35126 缺陷: Dev Mode breaks applications: calling getters in props objects causes side-effects
Bug: Dev Mode breaks applications: calling getters in props objects causes side-effects
Type: Discussion
2025-11-13 12
#33361 缺陷: formMethod specified on the submit button doesn't override the method from useFormStatus.
Bug: formMethod specified on the submit button doesn't override the method from useFormStatus.
Status: Unconfirmed
2025-05-27 12
#24358 缺陷: beforeInput event doesn't fire when input is replacing previous text
Bug: beforeInput event doesn't fire when input is replacing previous text
Component: DOMStatus: UnconfirmedDifficulty: mediumType: Needs Investigationgood first issue (taken)
2022-04-13 12
#23068 React 18 - Avoiding hydration 错误, but initialize 客户端-only state directly if possible
React 18 - Avoiding hydration errors, but initialize client-only state directly if possible
Type: DiscussionReact 18
2022-01-05 12
#21903 React 18 let's make ref.currant to be reactive value
React 18 let's make ref.currant to be reactive value
Type: DiscussionReact 18
2021-07-17 12
#21802 [React 18] Possible Suspense 缺陷 - Thrown 错误 causes corrupted 页面
[React 18] Possible Suspense Bug - Thrown error causes corrupted page
Type: Needs InvestigationReact 18
2021-07-05 12
#20497 缺陷: CSS variables can't be a space character
Bug: CSS variables can't be a space character
Type: BugComponent: DOMStatus: Unconfirmed
2020-12-22 12
#18661 缺陷: Nested SuspenseList may display fallbacks while the 组件 is loaded on re-渲染
Bug: Nested SuspenseList may display fallbacks while the component is loaded on re-render
Type: Needs InvestigationComponent: Concurrent Features
2020-04-17 12
#17581 Input nodes leaked by the browser retain React fibers
Input nodes leaked by the browser retain React fibers
Type: Needs Investigation
2019-12-12 12
#15739 Controlled input makes browser not saving submitted value (for autocomplete)
Controlled input makes browser not saving submitted value (for autocomplete)
Type: BugComponent: DOM
2019-05-25 12
#14540 Nested portals 应该 be discoverable
Nested portals should be discoverable
Type: Feature Request
2019-01-07 12
#14168 Input type email 缺陷
Input type email bug
Component: DOMType: Needs Investigation
2018-11-09 12
#13954 Receive previous state in getDerivedStateFromError
Receive previous state in getDerivedStateFromError
Type: Feature Request
2018-10-24 12
#11935 Consider a more specific 警告 for key={undefined}
Consider a more specific warning for key={undefined}
Type: EnhancementComponent: Core UtilitiesReact Core Team
2017-12-30 12
#1791 添加 api for focus management
Add api for focus management
Type: Feature RequestComponent: DOMResolution: Backlog
2014-07-05 12
#34008 缺陷: [React 19] Script tags not executing when embedded in 组件.
Bug: [React 19] Script tags not executing when embedded in components.
Status: Unconfirmed
2025-07-26 11
#31754 [React 19] `renderToString`'s output 缺失 some 渲染 elements
[React 19] `renderToString`'s output missing some rendered elements
React 19
2024-12-13 11
#31689 缺陷: React overwrites functions on customElements
Bug: React overwrites functions on customElements
Status: Unconfirmed
2024-12-06 11
#30363 功能请求: ESLint hooks rule for accessing previous state when deriving new state
Feature Request: ESLint hooks rule for accessing previous state when deriving new state
Status: UnconfirmedComponent: ESLint RulesResolution: Stale
2024-07-17 11
#29757 Refs merging/combining
Refs merging/combining
Type: Enhancement
2024-06-04 11
#27705 [DevTools 缺陷]: Hide logs during second 渲染 in Strict Mode not working
[DevTools Bug]: Hide logs during second render in Strict Mode not working
Type: BugStatus: UnconfirmedComponent: Developer Tools
2023-11-15 11
#25082 useTransition 应该 optionally also consider nested suspense boundaries
useTransition should optionally also consider nested suspense boundaries
Type: DiscussionComponent: Suspense
2022-08-11 11
#25007 [DevTools 缺陷] Children cannot be 添加 or 移除 during a reorder operation.
[DevTools Bug] Children cannot be added or removed during a reorder operation.
Type: BugStatus: UnconfirmedComponent: Developer Tools
2022-07-29 11
#23306 缺陷: pseudo styles don't work properly if React state does not 变更 when clicking with right mouse button.
Bug: pseudo styles don't work properly if React state does not change when clicking with right mouse button.
Type: BugComponent: DOM
2022-02-16 11
#22791 React 18 doesn't wait for long running suspended promises
React 18 doesn't wait for long running suspended promises
Type: DiscussionReact 18
2021-11-19 11
#22733 React 18 请求 similar 组件 trees for the useId
React 18 requests similar component trees for the useId
Type: DiscussionReact 18
2021-11-10 11