React 是由 Meta(原 Facebook)创建并维护的开源 JavaScript 库,专门用于构建用户界面。自 2013 年开源以来,React 已经成为全球最受欢迎的前端开发工具之一,被 Netflix、Airbnb、Instagram、Twitter 等大量知名网站和应用采用。
React 的核心理念是通过声明式编程和组件化架构来简化 UI 开发。开发者只需描述界面在不同状态下应该呈现的样子,React 会高效地更新和渲染正确的组件。配合 React Native,同一套技能还可以用于构建 iOS 和 Android 原生移动应用。
React 让创建交互式 UI 变得简单。为应用的每个状态设计简洁的视图,React 会在数据变化时高效地更新并渲染恰当的组件。声明式视图使代码更可预测、更易理解和调试。
构建管理自身状态的封装组件,然后将它们组合成复杂的 UI。由于组件逻辑是用 JavaScript 编写而非模板语言,因此可以轻松传递丰富的数据,并将状态与 DOM 分离。
React 不假设您的其余技术栈。您可以在不重写现有代码的情况下开发新功能。React 还可以使用 Node 进行服务端渲染,使用 React Native 开发移动应用。
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
最流行的 React 全栈框架,支持 SSR、SSG、API 路由、文件路由等功能,是构建生产级 React 应用的首选。
使用 React 技术构建原生 iOS 和 Android 移动应用,一套代码同时支持多个平台。
流行的状态管理方案。Redux 适合大型复杂应用,Zustand 则提供更简洁轻量的状态管理体验。
React 应用的标准路由库,支持声明式路由配置、动态路由匹配、嵌套路由等。
强大的异步数据管理库,处理数据获取、缓存、同步和更新,简化服务端状态管理。
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 |
以下是该项目当前开放的 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 |
attribute 需要 but not guaranteed by React
attribute needed but not guaranteed by React 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 `
[React 19] Controlled ` 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 |