关于 feature-arch
围绕功能组织 React 应用的参考技能,包含 42 条规则,分为八类,涵盖目录布局、导入边界、数据获取、状态管理、测试与命名。
主要功能
- 01八类共 42 条规则
- 02按功能组织目录
- 03导入边界与公共 API
- 04功能隔离与接口约定
- 05数据获取和状态管理建议
- 06组件、测试与命名实践
适用场景
- 01组织新的 React 功能模块
- 02制定导入规则和模块边界
- 03审查架构违规问题
- 04规划功能级数据获取与测试
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pymodel/ react-frontend-skills --skill feature-arch安装后在 Claude Code 中输入/feature-arch确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/bound-event-based-communication.mdbound-feature-isolation.mdbound-feature-scoped-routing.mdbound-feature-size.mdbound-interface-contracts.mdbound-minimize-shared-state.mdfcomp-colocate-styles.mdfcomp-composition-over-props.mdfcomp-container-presentational.mdfcomp-error-boundaries.mdfcomp-props-as-data-boundary.mdfcomp-single-responsibility.mdfquery-avoid-n-plus-one.mdfquery-colocate-with-feature.mdfquery-feature-scoped-keys.mdfquery-parallel-fetching.mdfquery-server-component-fetching.mdfquery-single-responsibility.mdfstate-context-sparingly.mdfstate-feature-scoped-stores.mdfstate-lift-minimally.mdfstate-reset-on-unmount.mdfstate-server-state-separation.mdimport-avoid-barrel-files.mdimport-no-cross-feature.mdimport-path-aliases.mdimport-public-api.mdimport-type-only.mdimport-unidirectional-flow.mdname-descriptive-exports.md详细介绍
基于功能的架构最佳实践
全面的架构指南,介绍如何按功能组织 React 应用,从而支持各团队独立开展可扩展的开发。包含 8 个类别中的 42 条规则,并按影响程度排序,从关键项(目录结构、导入)到渐进改进项(命名约定)。
适用场景
在以下情况下,请参考这些指南:
- 创建新功能或模块
- 组织项目目录结构
- 设置导入规则和边界
- 实现数据获取模式
- 组合来自多个功能的组件
- 审查代码是否违反架构规范
按优先级划分的规则类别
| 优先级 | 类别 | 影响 | 前缀 |
|---|---|---|---|
| 1 | 目录结构 | 关键 | struct- |
| 2 | 导入与依赖 | 关键 | import- |
| 3 | 模块边界 | 高 | bound- |
| 4 | 数据获取 | 高 | fquery- |
| 5 | 组件组织 | 中高 | fcomp- |
| 6 | 状态管理 | 中 | fstate- |
| 7 | 测试策略 | 中 | test- |
| 8 | 命名约定 | 低 | name- |
速查
1. 目录结构(关键)
struct-feature-folders- 按功能而非技术类型组织struct-feature-self-contained- 使功能自成一体struct-shared-layer- 仅将真正通用的代码放入共享层struct-flat-hierarchy- 保持目录层级扁平struct-optional-segments- 只包含必要的层级struct-app-layer- 将应用层与各功能分开
2. 导入与依赖(关键)
import-unidirectional-flow- 强制采用单向导入流import-no-cross-feature- 禁止跨功能导入import-public-api- 仅通过公共 API 导出import-avoid-barrel-files- 避免通过深层 Barrel 文件重新导出import-path-aliases- 使用一致的路径别名import-type-only- 对类型使用纯类型导入
3. 模块边界(高)
bound-feature-isolation- 强制功能隔离bound-interface-contracts- 定义明确的接口契约bound-feature-scoped-routing- 将路由限定在功能范围内bound-minimize-shared-state- 尽量减少功能之间的共享状态bound-event-based-communication- 使用事件进行跨功能通信bound-feature-size- 让功能保持适当的规模
4. 数据获取(高)
fquery-single-responsibility- 让查询函数只负责单一任务fquery-colocate-with-feature- 将数据获取逻辑与功能放在一起fquery-parallel-fetching- 并行获取相互独立的数据fquery-avoid-n-plus-one- 避免 N+1 查询模式fquery-feature-scoped-keys- 使用功能范围内的查询键fquery-server-component-fetching- 在服务端组件层级获取数据
5. 组件组织(中高)
fcomp-single-responsibility- 让组件遵循单一职责原则fcomp-composition-over-props- 优先使用组合,而非逐层传递属性fcomp-container-presentational- 分离容器逻辑与展示逻辑fcomp-props-as-data-boundary- 使用属性作为功能边界fcomp-colocate-styles- 将样式与组件放在一起fcomp-error-boundaries- 使用功能级错误边界
6. 状态管理(中)
fstate-feature-scoped-stores- 将状态存储限定在功能范围内fstate-server-state-separation- 将服务端状态与客户端状态分开fstate-lift-minimally- 仅在必要时向上提升状态fstate-context-sparingly- 谨慎使用上下文管理功能状态fstate-reset-on-unmount- 卸载时重置功能状态
7. 测试策略(中)
test-colocate-with-feature- 将测试与功能放在一起test-feature-isolation- 隔离测试各项功能test-shared-utilities- 创建功能专用的测试工具test-integration-at-app-layer- 在应用层编写集成测试
8. 命名约定(低)
name-feature-naming- 使用领域驱动的功能名称name-file-conventions- 采用一致的文件命名约定name-descriptive-exports- 使用描述性导出名称
使用方法
对于上面与任务匹配的每条规则,请阅读 references/<rule-id>.md:了解其重要性,以及错误与正确的代码示例。
分层和边界规则符合 Feature-Sliced Design(FSD),这是目前应用最广泛的 React 架构标准;完整方法请参阅 feature-sliced.design。
相关技能
- 有关数据获取,请参阅
tanstack-query技能 - 有关 React 组件模式,请参阅
react技能
评论
支持 Markdown