Skip to content

React 生态 ​

React 以其组件化架构和强大的生态系统,成为现代前端开发的主流框架。

React 基础 ​

核心概念 ​

  • 组件: 函数组件、类组件、JSX语法
  • Props: 属性传递、默认值、类型检查
  • State: 状态管理、setState、状态提升
  • 生命周期: 挂载、更新、卸载、错误边界

React 18 新特性 ​

  • 并发渲染: Concurrent Mode、Suspense
  • 自动批处理: 状态更新批处理
  • 新的Root API: createRoot、hydrateRoot
  • Suspense: 数据获取、代码分割

Hooks ​

基础Hooks ​

  • useState: 状态管理、初始值
  • useEffect: 副作用、副作用清理
  • useContext: 上下文消费、Provider模式
  • useReducer: 复杂状态、状态机

额外Hooks ​

  • useCallback: 函数记忆化、依赖优化
  • useMemo: 值记忆化、计算优化
  • useRef: DOM引用、可变引用
  • useImperativeHandle: 命令式API暴露

自定义Hooks ​

  • 逻辑复用: 自定义hooks、组合逻辑
  • 状态抽象: 业务逻辑封装
  • 副作用管理: 异步操作、事件处理

状态管理 ​

Context API ​

  • 创建上下文: createContext、Provider
  • 消费上下文: useContext、Consumer
  • 性能优化: memo、useMemo

Redux ​

  • 状态树: store、action、reducer
  • 中间件: redux-thunk、redux-saga
  • 选择器: reselect、状态计算
  • DevTools: 调试工具、时间旅行

Redux Toolkit ​

  • 简化Redux: configureStore、createSlice
  • Immer: 不可变更新、简化语法
  • RTK Query: 数据获取、缓存管理

Zustand ​

  • 轻量级: 小而美、简单API
  • TypeScript: 类型安全、开发体验
  • 中间件: 持久化、撤销重做

路由管理 ​

React Router ​

  • 路由配置: BrowserRouter、HashRouter
  • 路由定义: Route、Routes、嵌套路由
  • 导航: Link、NavLink、useNavigate
  • 参数: useParams、useSearchParams

路由守卫 ​

  • 保护路由: 认证检查、重定向
  • 懒加载: React.lazy、Suspense
  • 代码分割: 路由级分割

样式管理 ​

CSS in JS ​

  • styled-components: 样式组件、主题
  • emotion: CSS-in-JS、样式对象
  • styled-system: 设计系统、主题化

CSS Modules ​

  • 局部作用域: 样式隔离、类名生成
  • 组合样式: composes、样式继承
  • TypeScript: 类型定义

Tailwind CSS ​

  • 原子化CSS: 工具类、响应式设计
  • 自定义配置: 主题定制、插件系统
  • 优化: PurgeCSS、压缩

表单处理 ​

受控组件 ​

  • 状态同步: value、onChange
  • 表单验证: 实时验证、错误显示
  • 提交处理: preventDefault、表单数据

React Hook Form ​

  • 高性能: 最小重渲染、非受控组件
  • 验证: 内置验证、自定义规则
  • 集成: UI库集成、TypeScript

Formik ​

  • 表单状态: values、errors、touched
  • 处理函数: handleChange、handleSubmit
  • 高级功能: 数组字段、嵌套表单

数据获取 ​

Fetch API ​

  • 原生API: fetch、Response、Request
  • 错误处理: try/catch、状态检查
  • 配置: headers、credentials、mode

Axios ​

  • HTTP客户端: 请求配置、拦截器
  • 实例: 基础URL、默认配置
  • 取消请求: CancelToken、AbortController

React Query ​

  • 服务端状态: 缓存、同步、更新
  • 查询: useQuery、查询键
  • 变更: useMutation、乐观更新

性能优化 ​

渲染优化 ​

  • React.memo: 组件记忆化
  • useMemo: 计算结果缓存
  • useCallback: 函数引用稳定

代码分割 ​

  • 动态导入: React.lazy、import()
  • 路由分割: 按路由分割
  • 组件分割: 按组件分割

虚拟化 ​

  • 长列表: react-window、react-virtualized
  • 大数据: 虚拟滚动、窗口渲染

测试 ​

单元测试 ​

  • Jest: 测试运行器、断言库
  • React Testing Library: 行为测试、用户视角
  • 测试工具: render、fireEvent、waitFor

集成测试 ​

  • 组件测试: 完整组件、交互测试
  • 自定义hooks: hooks测试、状态变化
  • 上下文测试: Provider测试、消费测试

E2E测试 ​

  • Cypress: 端到端测试、实时重载
  • Playwright: 跨浏览器、多环境
  • Testing Library: 一致的测试API

服务端渲染 ​

Next.js ​

  • 页面路由: pages目录、动态路由
  • 数据获取: getServerSideProps、getStaticProps
  • API路由: api目录、服务端API
  • 优化: 图片优化、字体优化

SSR优化 ​

  • 流式渲染: 渐进式加载
  • 缓存策略: ISR、静态生成
  • 性能监控: Web Vitals、Core Web Vitals

移动端开发 ​

React Native ​

  • 跨平台: iOS/Android、原生性能
  • 组件: View、Text、TouchableOpacity
  • 导航: React Navigation、状态管理
  • 原生模块: 桥接、原生功能

Expo ​

  • 开发工具: CLI、SDK、构建服务
  • 托管服务: EAS Build、EAS Update
  • 库生态: Expo SDK、第三方库

TypeScript 集成 ​

类型定义 ​

  • 组件类型: FC、Props、JSX.Element
  • Hooks类型: useState、useEffect
  • 事件类型: React.MouseEvent、React.FormEvent

最佳实践 ​

  • 严格模式: strict、noImplicitAny
  • 类型守卫: typeof、instanceof
  • 泛型: 组件泛型、hooks泛型

生态工具 ​

开发工具 ​

  • React DevTools: 组件树、性能分析
  • ESLint: 代码规范、React规则
  • Prettier: 代码格式化

辅助库 ​

  • Lodash: 工具函数、性能优化
  • Moment.js: 日期处理、格式化
  • UUID: 唯一标识符生成

企业级应用 ​

项目结构 ​

  • 目录组织: components、pages、hooks、utils
  • 代码规范: ESLint、Prettier、husky
  • 提交规范: Commitizen、commitlint

部署策略 ​

  • 静态部署: Vercel、Netlify
  • 容器部署: Docker、Kubernetes
  • CDN优化: 资源分发、缓存策略

微前端 ​

架构模式 ​

  • 应用拆分: 独立部署、团队自治
  • 路由分发: 路由劫持、主应用路由
  • 应用通信: 事件总线、状态共享

实现方案 ​

  • single-spa: 微前端框架、生命周期
  • qiankun: 基于single-spa、开箱即用
  • Module Federation: Webpack 5、运行时加载

最佳实践 ​

代码组织 ​

  • 组件设计: 组合优于继承、单一职责
  • 状态管理: 状态提升、状态下钻
  • 错误处理: Error Boundary、错误恢复

性能监控 ​

  • 指标收集: 加载时间、交互时间
  • 错误监控: Sentry、错误边界
  • 用户体验: Core Web Vitals、性能预算