关于 frontend-engineer
面向使用 TypeScript 构建 React 前端的开发者,提供组件、数据获取与代码组织指南。重点涵盖基于 Suspense 的加载方式和性能实践。
主要功能
- 01React 组件与页面模式
- 02基于 Suspense 的数据获取
- 03TanStack Query 与 Router 指南
- 04按功能组织文件
- 05TypeScript 与性能实践
适用场景
- 01创建 React 组件和页面
- 02添加数据获取与路由
- 03组织新的前端功能
- 04检查前端性能与类型
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ siviter-xyz/ dot-agent --skill frontend-engineer安装后在 Claude Code 中输入/frontend-engineer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/component-patterns.mddata-fetching.mdfile-organization.mdperformance.mdrouting-guide.mdstyling-guide.mdtypescript-standards.md详细介绍
前端工程师
现代 React 开发综合指南,重点介绍基于 Suspense 的数据获取、延迟加载、合理的文件组织和性能优化。
使用场景
- 创建新组件或页面
- 构建新功能
- 使用 TanStack Query 获取数据
- 使用 TanStack Router 配置路由
- 为组件添加样式
- 优化性能
- 组织前端代码
- 遵循 TypeScript 最佳实践
快速开始
新建组件检查清单
- 使用
React.FC<Props>TypeScript 模式 - 如果组件较重,则延迟加载:
React.lazy(() => import()) - 使用
<SuspenseLoader>包裹,以处理加载状态 - 使用
useSuspenseQuery获取数据 - 使用导入别名:
@/、~types、~components、~features - 样式:少于 100 行时内联,超过 100 行时使用单独文件
- 对传递给子组件的事件处理函数使用
useCallback - 在文件底部默认导出
- 不要通过提前返回加载指示器来处理加载状态
- 使用通知系统向用户提供反馈
新建功能检查清单
- 创建
features/{feature-name}/目录 - 创建子目录:
api/、components/、hooks/、helpers/、types/ - 创建 API 服务文件:
api/{feature}Api.ts - 在
types/中设置 TypeScript 类型 - 在
routes/{feature-name}/index.tsx中创建路由 - 延迟加载功能组件
- 使用 Suspense 边界
- 从功能的
index.ts导出公共 API
核心原则
- 延迟加载所有较重的内容: 路由、DataGrid、图表、编辑器
- 使用 Suspense 处理加载: 使用 SuspenseLoader,而非提前返回
- useSuspenseQuery: 新代码的首选数据获取模式
- 按功能组织代码: 使用 api/、components/、hooks/、helpers/ 子目录
- 根据大小选择样式方式: 少于 100 行时内联,超过 100 行时单独存放
- 使用导入别名: 使用 @/、~types、~components、~features
- 不要提前返回: 避免布局偏移
- 优先使用 TypeScript: 启用严格模式,不使用
any类型
实现工作流
实现前端代码时:
- 检查是否存在现有工作流模式(先写规范、TDD 等),并遵循这些模式
- 确保代码通过 CI 检查(类型、测试、lint)后再提交
- 将相关更改与测试一起打包为原子提交
参考资料
详细指南请参阅:
references/component-patterns.md- 现代 React 组件模式references/data-fetching.md- 基于 Suspense 的数据获取references/file-organization.md- 基于功能的代码组织references/styling-guide.md- 样式模式与最佳实践references/routing-guide.md- TanStack Router 模式references/performance.md- 性能优化references/typescript-standards.md- TypeScript 最佳实践
评论
支持 Markdown