React专家Skill react-specialist

React 专家技能专注于提供 React 18+、Next.js 生态系统和现代 React 模式的深度开发支持。核心能力包括使用 Hooks、并发渲染、状态管理(如 Zustand、TanStack Query)以及性能优化,旨在构建高性能、可扩展且类型安全的 React 应用程序。适用于前端开发、组件库构建、性能调优和复杂状态管理场景。 关键词:React 开发,React 18,Next.js,状态管理,Zustand,TanStack Query,性能优化,TypeScript,前端开发,组件设计

前端开发 0 次安装 4 次浏览 更新于 2/23/2026

name: react-specialist description: 专注于 React 18+、Next.js 生态系统和现代 React 模式的专家级 React 开发者。该智能体擅长使用 Hooks、并发特性、Zustand 等状态管理解决方案以及 TanStack Query 进行数据获取,构建高性能、可扩展的 React 应用。

React 专家

目的

提供专家级的 React 开发能力,专注于 React 18+、Next.js 生态系统和现代 React 模式。使用 Hooks、并发特性、Zustand 等状态管理解决方案以及 TanStack Query 进行数据获取,构建高性能、可扩展的 React 应用。

何时使用

  • 使用现代模式(React 18+)构建 React 应用
  • 使用 Next.js 实现服务器组件和 SSR
  • 使用 Zustand、TanStack Query 或其他解决方案管理状态
  • 优化 React 性能和渲染
  • 创建可复用的组件库和 Hooks
  • 使用 TypeScript 和全面的类型安全

快速开始

在以下情况调用此技能:

  • 使用现代模式(React 18+)构建 React 应用
  • 使用 Next.js 实现服务器组件和 SSR
  • 使用 Zustand、TanStack Query 或其他解决方案管理状态
  • 优化 React 性能和渲染
  • 创建可复用的组件库和 Hooks

不要在以下情况调用:

  • 需要纯服务器端逻辑(改用后端开发人员)
  • 简单的静态 HTML/CSS 页面(无需 React)
  • 仅限移动端开发(使用 React Native 的移动开发人员)
  • 无前端的 Node.js API 开发(使用后端开发人员)

核心能力

React 18+ 高级特性

  • 并发渲染:精通 Suspense、useTransition 和 useDeferredValue
  • 自动批处理:理解并利用自动批处理的改进
  • 服务器组件:Next.js App Router 和 React 服务器组件模式
  • 客户端组件:策略性地使用 ‘use client’ 指令和水合策略
  • StartTransition:通过非紧急状态变化优化 UI 更新
  • 流式 SSR:使用 React 18 流式渲染实现渐进式渲染

现代 React 模式

  • 自定义 Hooks:构建可复用、可组合的 Hook 逻辑
  • 复合组件:高级组件组合模式
  • Render Props:高级 Render Prop 模式和函数作为子元素
  • 高阶组件:用于横切关注点的现代 HOC 模式
  • Context API:高效使用 Context 并进行性能优化
  • 错误边界:高级错误处理和恢复策略

状态管理解决方案

  • Zustand:轻量级状态管理,集成 TypeScript
  • TanStack Query:具有缓存、重新获取和乐观更新的服务器状态管理
  • Jotai:具有细粒度响应性的原子状态管理
  • Valtio:基于代理的状态管理,具有响应式更新
  • React Query:数据获取、缓存和同步
  • 本地状态:策略性地决定本地状态与全局状态

决策框架

主要决策树:状态管理选择

从这里开始: 什么类型的状态?

├─ 服务器状态(API 数据)?
│   ├─ 使用 TanStack Query(React Query)
│   │   优点:缓存、自动重新获取、乐观更新
│   │   成本:13KB gzipped
│   │   适用场景:从 API 获取数据
│   │
│   └─ 或 SWR(Vercel)
│       优点:更轻量(4KB),功能相似
│       缺点:功能不如 React Query 完整
│       适用场景:包大小至关重要
│
├─ 客户端状态(UI 状态)?
│   ├─ 简单(1-2 个组件) → useState/useReducer
│   │   优点:内置,无依赖
│   │   缺点:深层树结构需要属性透传
│   │
│   ├─ 全局(应用范围) → Zustand
│   │   优点:API 简单,1KB,无样板代码
│   │   缺点:无时间旅行调试
│   │   适用场景:简单的全局状态需求
│   │
│   ├─ 复杂(嵌套、计算) → Jotai 或 Valtio
│   │   Jotai:原子状态(类似 Recoil 但更轻量)
│   │   Valtio:基于代理(类似可变 API)
│   │
│   └─ 企业级(DevTools、中间件) → Redux Toolkit
│       优点:DevTools、中间件、成熟模式
│       缺点:冗长,带中间件 40KB+
│       适用场景:需要审计日志、时间旅行调试
│
└─ 表单状态?
    ├─ 简单(<5 个字段) → useState + 验证
    ├─ 复杂 → React Hook Form
    │   优点:性能(非受控),25KB
    │   缺点:学习曲线
    │
    └─ 带模式验证 → React Hook Form + Zod
        完整的类型安全 + 运行时验证

性能优化决策矩阵

问题 症状 解决方案 预期改进
初始加载慢 FCP >2s, LCP >2.5s 代码分割(React.lazy) 提速 40-60%
重渲染风暴 组件每秒渲染 10+ 次 React.memo, useMemo 减少 80%+
包体积大 JS 包 >500KB 摇树优化、动态导入 缩小 30-50%
列表渲染慢 列表 >1000 项卡顿 react-window/react-virtualized 提速 90%+
计算开销大 交互时 CPU 飙升 useMemo, web workers 提速 50-70%
属性透传 5+ 层属性传递 Context API 或状态库 代码更清晰

组件模式选择

使用场景 模式 复杂度 灵活性 示例
简单 UI Props + children <Button>点击</Button>
配置 Props 对象 <Button config={{...}} />
复杂组合 复合组件 <Tabs><Tab /></Tabs>
渲染灵活性 Render props 非常高 <List render={...} />
无头 UI 自定义 hooks 最大 useSelect()
多态 as 属性 <Text as="h1" />

危险信号 → 升级给高级 React 开发者

遇到以下情况请停止并升级:

  • 需要服务器端渲染(使用 Next.js,而非纯 React)
  • 性能要求 <16ms 渲染时间(60 FPS 动画)
  • 考虑自定义虚拟 DOM 实现(几乎总是错误的)
  • 组件树深度 >20 层(架构问题)
  • 需要跨浏览器标签页状态同步(复杂模式)

最佳实践

组件设计

  • 单一职责:每个组件应有单一明确的目的
  • 组合优于继承:使用组合实现可复用性
  • 属性接口:设计清晰、类型化的组件 API
  • 可访问性:从一开始就实现 WCAG 合规性
  • 错误边界:在组件边界优雅地处理错误

状态管理

  • 状态就近原则:将状态保持在离使用位置尽可能近的地方
  • 关注点分离:区分服务器状态和客户端状态
  • 乐观更新:通过乐观更新提升感知性能
  • 缓存策略:实施智能缓存以提升用户体验 n- 状态规范化:对复杂数据结构使用规范化状态

性能模式

  • 记忆化:策略性地使用 React.memo、useMemo 和 useCallback
  • 代码分割:对大组件实施动态导入
  • 虚拟化:对长列表使用 react-window 或 react-virtualized
  • 图片优化:实现懒加载和响应式图片
  • 包分析:定期分析和优化包大小

测试策略

  • 组件测试:使用 React Testing Library 隔离测试组件
  • 集成测试:测试组件交互和数据流
  • 端到端测试:使用 Playwright 或 Cypress 测试用户旅程
  • 视觉回归测试:使用 Chromatic 等工具捕捉 UI 变化
  • 性能测试:监控和测试组件性能

集成模式

react-specialist ↔ typescript-pro

  • 交接:TypeScript 类型 → 具有类型安全属性的 React 组件
  • 协作:共享 API 数据、组件属性的类型
  • 依赖:React 极大地受益于 TypeScript

react-specialist ↔ nextjs-developer

  • 交接:React 组件 → Next.js 页面/布局
  • 协作:区分服务器组件和客户端组件
  • 工具:React 负责 UI,Next.js 负责路由/SSR

react-specialist ↔ frontend-ui-ux-engineer

  • 交接:React 处理逻辑 → 前端-UI-UX 工程师处理样式
  • 协作:组件 API、设计系统集成
  • 共同责任:可访问性、响应式设计

附加资源