SuperAPI AI 工具集

frontend-patterns

前端与建站

查看项目

更新于 10-15 18:37

技能介绍

用途

frontend-patterns 是一份前端开发模式参考,聚焦 React、Next.js、状态管理、性能优化与 UI 最佳实践。它通过 TypeScript 代码示例展示常见问题的推荐写法,帮助开发者在构建现代前端界面时选择合适的设计模式。

主要能力

组件模式

  • 组合优于继承:通过 Card、CardHeader、CardBody 等组合式组件示例说明如何用组合替代继承。
  • 复合组件(Compound Components):以 Tabs、TabList、Tab 为例,展示如何通过 Context 在父子组件间共享状态。
  • Render Props:以 DataLoader 为例,展示如何将数据加载逻辑与渲染逻辑分离。

自定义 Hook 模式

  • 状态管理 Hook:useToggle 示例。
  • 异步数据获取 Hook:useQuery 示例,支持 onSuccess、onError、enabled 等选项与 refetch。
  • 防抖 Hook:useDebounce 示例,用于搜索输入等场景。

状态管理模式

  • Context + Reducer:以 MarketContext 为例,展示 useReducer 与 Context 结合的状态管理方式。

性能优化

  • 记忆化:useMemo 用于昂贵计算,useCallback 用于传给子组件的函数,React.memo 用于纯组件。
  • 代码分割与懒加载:使用 lazy 与 Suspense 延迟加载重型组件。
  • 长列表虚拟化:使用 @tanstack/react-virtual 的 useVirtualizer 渲染大量列表项。

表单处理模式

  • 受控表单与校验:以 CreateMarketForm 为例,展示表单状态、错误状态与提交校验流程。

错误边界模式

  • ErrorBoundary 类组件示例,包含 getDerivedStateFromError、componentDidCatch 与降级 UI。

动画模式

  • Framer Motion:使用 motion 与 AnimatePresence 实现列表动画与模态框动画。

无障碍模式

  • 键盘导航:Dropdown 示例,处理 ArrowDown、ArrowUp、Enter、Escape 等按键。
  • 焦点管理:Modal 示例,打开时保存并聚焦,关闭时恢复焦点。

使用方式

资料以代码片段形式呈现,每个模式均配有示例代码与用法注释。开发者可按需查阅对应章节,将示例代码作为实现参考。资料未提供安装命令、依赖版本或项目集成步骤。

适用场景

适用于使用 React 或 Next.js 构建前端界面的开发者,在需要设计组件结构、管理状态、优化渲染性能、处理表单、添加动画或提升无障碍体验时作为模式参考。

限制

资料未说明适用的 React 或 Next.js 版本、依赖包的具体版本要求、浏览器兼容性、性能基准数据或授权许可信息。部分示例(如 useQuery)为简化实现,未涵盖缓存、并发请求等完整场景。