React
Facebook 开发的 UI 库,用于构建用户界面
核心思想
UI = f(state)
这是 React 最著名的公式。
- 视图是状态的映射。
- 你不需要手动操作 DOM (jQuery 模式),只需要修改 State,React 会自动把 UI 更新到最新状态。
单向数据流
- 自上而下:数据(Props)只能从父组件流向子组件。
- 优势:数据流向清晰,出现 Bug 时很容易定位数据来源,避免了双向绑定带来的数据混乱。
声明式 vs 命令式
- 声明式:告诉 React "我想要什么页面" (
<h1>{title}</h1>)。
- 命令式:告诉浏览器 "第一步创建h1,第二步设置文字..."。
- 声明式代码更易读、更易维护。
组件化
- 将复杂的 UI 拆分为独立的、可复用的组件。
- 每个组件管理自己的状态,然后组合成复杂的页面。
不可变数据
- 不直接修改 State,而是替换它。
- 这是 React 性能优化(浅比较)的基础。
核心概念
JSX
JavaScript 的语法扩展,允许在 JS 中编写类似 HTML 的代码。
组件
React 应用由组件构成,组件是可复用的 UI 单元。
State 与 Props
- State:组件内部的状态,组件自己管理
- Props:从父组件传入的数据,子组件只读
状态管理
- useState:函数组件中管理本地状态
- useReducer:复杂状态逻辑管理
- Context:跨组件数据共享
生命周期
- 挂载:componentDidMount / useEffect
- 更新:componentDidUpdate / useEffect
- 卸载:componentWillUnmount / useEffect cleanup
Virtual DOM
React 的性能保障,通过 diff 算法最小化真实 DOM 操作。
常见面试题
- React 的虚拟 DOM 是什么?
- React Hooks 的原理是什么?
- React 的 Fiber 架构是什么?
- useEffect 和 useLayoutEffect 的区别?
- React 的合成事件是什么?