Maxkore:修订间差异
无编辑摘要 |
TeodoroSeccombe(留言 | 贡献) 小 创建页面,内容为“。” |
||
| 第1行: | 第1行: | ||
{| | {{Infobox | ||
! | | 标题 = React | ||
| 内容 = | |||
! | {{!}}- | ||
! 其他名称 | |||
{{!}} React.js | |||
! | {{!}}- | ||
! 类型 | |||
{{!}} JavaScript库 | |||
! | {{!}}- | ||
! 开发者 | |||
{{!}} Meta(原Facebook)及社区 | |||
! | {{!}}- | ||
! 设计者 | |||
{{!}} Jordan Walke | |||
! | {{!}}- | ||
! 首次发布 | |||
{{!}} 2013年5月 | |||
! | {{!}}- | ||
! 编程语言 | |||
{{!}} JavaScript | |||
{{!}}- | |||
! 许可证 | |||
{{!}} MIT | |||
{{!}}- | |||
! 官方网站 | |||
{{!}} https://react.dev | |||
}} | |||
'''React'''(又称'''React.[[js]]''')是一个由Meta(原Facebook)开发并维护的开源[[Java]]Script库,用于构建基于组件的[[用户]]界面。<ref name=":0">[https://github.com/gamal2001/History-of-React GitHub - gamal2001/History-of-React]</ref><ref name=":1">[https://www.51cto.com/article/761923.html React初学者指南:React的基本要素 - 51CTO]</ref> 其核心设计思想包括声明式[[编程]]、组件化[[架构]]及虚拟DOM,使开发者能够以模块化的方式构建复杂的交互式[[Web]]应用。<ref name=":2">[https://www.geeksforgeeks.org/reactjs/reactjs-virtual-dom/ Virtual DOM in React JS - GeeksforGeeks]</ref><ref name=":3">[https://blog.logrocket.com/the-virtual-dom-react/ What is the virtual DOM in React? - LogRocket]</ref> React主要用于开发单页应用,亦可与Next.js等框架配合实现[[服务器]]端渲染,或通过React Native构建原生移动应用。<ref name=":0" /> | |||
== | == 历史 == | ||
=== 小 | React由Meta[[软件]]工程师Jordan Walke创建,其灵感源自XHP——一个用于[[PHP]]的[[HTML]]组件库。<ref name=":0" /> Walke最初开发了一个名为"FaxJS"的原型,允许在[[JavaScript]]中编写类HTML语法并通过虚拟DOM抽象将其渲染至DOM。<ref name=":0" /> | ||
2011年,React首次部署于Facebook的News Feed功能。2012年,Facebook收购Instagram后,React被用于驱动Instagram的Web界面,这是React在Facebook核心平台之外的首次大规模应用。<ref name=":4">[https://zeeshanai.com/blogs/history-of-reactjs/ The History of React.js: From Facebook's Internal Tool to Global Phenomenon]</ref> | |||
2013年5月,React在JSConf US上由Tom Occhino和Pete Hunt正式对外公布并开源。<ref name=":0" /> 发布初期,JSX语法扩展曾引发部分开发者的质疑,但Facebook工程团队阐述了虚拟DOM的性能优势与组件化架构的可维护性,逐步获得了广泛认可。<ref name=":4" /> | |||
2015年2月,Meta在React Conf上宣布React Native,同年3月将其开源,使开发者能够使用React范式构建[[iOS]]与[[Android]]原生应用。<ref name=":5">[https://github.com/tjmaher/detox-demo GitHub - tjmaher/detox-demo]</ref> 2017年4月,Meta宣布React Fiber——一套新的调和算法,取代了此前的"Stack"架构,通过将渲染工作分割为可独立调度的小单元,显著提升了动态更新场景下的响应性能。<ref name=":1" /> | |||
== 技术特性 == | |||
=== 虚拟DOM === | |||
React的核心性能优化机制是虚拟DOM(Virtual DOM)。虚拟DOM是真实DOM的轻量级内存表示,以JavaScript对象树的形式存在。<ref name=":3" /> 当组件状态发生变化时,React首先在虚拟DOM中生成新的UI表示,随后通过diff算法将其与前一版本进行比较,识别出最小变更集,最后仅将必要的更新应用至真实DOM。<ref name=":2" /><ref name=":3" /> 这一机制避免了直接操作真实DOM带来的高昂性能开销,确保UI更新高效且流畅。<ref name=":6">[https://www.freecodecamp.org/news/what-is-the-virtual-dom-in-react/ What is the Virtual DOM in React? - freeCodeCamp]</ref> | |||
=== 组件化架构 === | |||
React采用组件化设计,将用户界面拆分为独立、可复用的组件单元。每个组件封装了自身的逻辑与渲染输出,可通过组合方式构建复杂的应用结构。<ref name=":2" /> 组件可以是类组件(Class Components)或函数组件(Function Components),后者配合Hooks API已成为当前主流写法。<ref name=":0" /> | |||
=== JSX === | |||
JSX是一种JavaScript语法扩展,允许在JavaScript代码中直接编写类HTML元素。<ref name=":0" /> 它并非模板语言,而是会被编译为普通的JavaScript函数调用。JSX使组件的结构与逻辑紧密耦合,提升了代码的可读性与开发效率。 | |||
=== React Fiber === | |||
React Fiber是React 16引入的新的调和引擎,取代了原有的Stack reconciler。<ref name=":7">[https://www.vikatechnologies.in/blog/why-is-react-so-fast-virtual-dom-fiber-architecture Why Is React So Fast? The Virtual DOM & Fiber Architecture Revealed]</ref> Fiber将渲染工作拆分为多个小任务单元,支持任务的暂停、恢复与优先级调度,使高优先级交互(如用户点击、动画)能够及时得到响应,从而改善复杂应用中的用户体验。<ref name=":7" /> | |||
== 主要API == | |||
React通过Hooks API为函数组件提供状态管理与副作用处理能力。useState用于在函数组件中管理本地状态,useEffect用于处理副作用(如[[数据]]获取、订阅管理),useContext用于访问React上下文,useReducer则提供了类Redux的状态管理范式。<ref name=":0" /> 这些API使函数组件具备了此前仅类组件拥有的能力,推动了React开发范式的演进。 | |||
== 生态与应用 == | |||
React已成为[[全球]]最具影响力的前端技术之一。除Web应用外,React Native使开发者能够使用相同的组件化思维构建[[跨平台]]移动应用。<ref name=":5" /> 在服务端渲染领域,Next.js、Remix等元框架基于React提供了完整的服务器端渲染与静态站点生成方案。React亦被广泛应用于数据可视化仪表盘、内容管理系统及电子商务平台的开发。 | |||
== 参考文献 == | |||
<references /> | |||
2026年7月15日 (三) 21:04的版本
React(又称React.js)是一个由Meta(原Facebook)开发并维护的开源JavaScript库,用于构建基于组件的用户界面。[1][2] 其核心设计思想包括声明式编程、组件化架构及虚拟DOM,使开发者能够以模块化的方式构建复杂的交互式Web应用。[3][4] React主要用于开发单页应用,亦可与Next.js等框架配合实现服务器端渲染,或通过React Native构建原生移动应用。[1]
历史
React由Meta软件工程师Jordan Walke创建,其灵感源自XHP——一个用于PHP的HTML组件库。[1] Walke最初开发了一个名为"FaxJS"的原型,允许在JavaScript中编写类HTML语法并通过虚拟DOM抽象将其渲染至DOM。[1]
2011年,React首次部署于Facebook的News Feed功能。2012年,Facebook收购Instagram后,React被用于驱动Instagram的Web界面,这是React在Facebook核心平台之外的首次大规模应用。[5]
2013年5月,React在JSConf US上由Tom Occhino和Pete Hunt正式对外公布并开源。[1] 发布初期,JSX语法扩展曾引发部分开发者的质疑,但Facebook工程团队阐述了虚拟DOM的性能优势与组件化架构的可维护性,逐步获得了广泛认可。[5]
2015年2月,Meta在React Conf上宣布React Native,同年3月将其开源,使开发者能够使用React范式构建iOS与Android原生应用。[6] 2017年4月,Meta宣布React Fiber——一套新的调和算法,取代了此前的"Stack"架构,通过将渲染工作分割为可独立调度的小单元,显著提升了动态更新场景下的响应性能。[2]
技术特性
虚拟DOM
React的核心性能优化机制是虚拟DOM(Virtual DOM)。虚拟DOM是真实DOM的轻量级内存表示,以JavaScript对象树的形式存在。[4] 当组件状态发生变化时,React首先在虚拟DOM中生成新的UI表示,随后通过diff算法将其与前一版本进行比较,识别出最小变更集,最后仅将必要的更新应用至真实DOM。[3][4] 这一机制避免了直接操作真实DOM带来的高昂性能开销,确保UI更新高效且流畅。[7]
组件化架构
React采用组件化设计,将用户界面拆分为独立、可复用的组件单元。每个组件封装了自身的逻辑与渲染输出,可通过组合方式构建复杂的应用结构。[3] 组件可以是类组件(Class Components)或函数组件(Function Components),后者配合Hooks API已成为当前主流写法。[1]
JSX
JSX是一种JavaScript语法扩展,允许在JavaScript代码中直接编写类HTML元素。[1] 它并非模板语言,而是会被编译为普通的JavaScript函数调用。JSX使组件的结构与逻辑紧密耦合,提升了代码的可读性与开发效率。
React Fiber
React Fiber是React 16引入的新的调和引擎,取代了原有的Stack reconciler。[8] Fiber将渲染工作拆分为多个小任务单元,支持任务的暂停、恢复与优先级调度,使高优先级交互(如用户点击、动画)能够及时得到响应,从而改善复杂应用中的用户体验。[8]
主要API
React通过Hooks API为函数组件提供状态管理与副作用处理能力。useState用于在函数组件中管理本地状态,useEffect用于处理副作用(如数据获取、订阅管理),useContext用于访问React上下文,useReducer则提供了类Redux的状态管理范式。[1] 这些API使函数组件具备了此前仅类组件拥有的能力,推动了React开发范式的演进。
生态与应用
React已成为全球最具影响力的前端技术之一。除Web应用外,React Native使开发者能够使用相同的组件化思维构建跨平台移动应用。[6] 在服务端渲染领域,Next.js、Remix等元框架基于React提供了完整的服务器端渲染与静态站点生成方案。React亦被广泛应用于数据可视化仪表盘、内容管理系统及电子商务平台的开发。
参考文献
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 GitHub - gamal2001/History-of-React
- ↑ 2.0 2.1 React初学者指南:React的基本要素 - 51CTO
- ↑ 3.0 3.1 3.2 Virtual DOM in React JS - GeeksforGeeks
- ↑ 4.0 4.1 4.2 What is the virtual DOM in React? - LogRocket
- ↑ 5.0 5.1 The History of React.js: From Facebook's Internal Tool to Global Phenomenon
- ↑ 6.0 6.1 GitHub - tjmaher/detox-demo
- ↑ What is the Virtual DOM in React? - freeCodeCamp
- ↑ 8.0 8.1 Why Is React So Fast? The Virtual DOM & Fiber Architecture Revealed