用途:为任意 React 或 React Native 前端提供一套可移植、框架无关的架构风格,让贡献者能快速回答“代码放哪”“谁可以导入谁”“这是服务端状态还是 UI 状态”。该技能描述的是结构与规则,不是组件库、状态库或视觉风格。
核心思路:功能模块拥有自己的世界,每个 feature 是自包含的 modules/{feature}/ 目录;页面/屏幕以目录而非单文件存在;状态按来源拆分,服务端数据放在查询/缓存层,UI 状态放在客户端 store;跨模块只能通过 barrel(index.ts)导入;代码先就近放置,出现第二个使用者时才向外提升。
目录结构:src/ 下含框架路由层(app/、routes/ 或 navigation/,保持轻薄)、modules/(功能模块)和 shared/(跨模块构建块)。模块内有 index.ts 公开 barrel、README、components、pages、hooks、stores、services、utils、constants、types。页面目录包含组件、{page}.styles.ts、index.ts、本地 components/hooks/constants 与 README。
状态规则:服务端状态与 UI 状态必须分离,禁止把服务端响应镜像进客户端 store,禁止在组件内直接发请求,禁止用渲染状态驱动连续值。每个模块一个 store 单元,可选 Zustand、Redux Toolkit、MobX、Jotai 等任意库,形状一致只是语法不同。网络访问统一经过 shared/api-client/ 的一个类型化客户端,模块用查询/变更 hook 和层级 key 工厂包装。
样式:就近放置,禁止内联样式,可用 Tailwind、CSS Modules、vanilla-extract、styled-components、Tamagui、React Native StyleSheet 或 Nativewind,语法随技术栈变化,规则不变。
命名:接口以 I 前缀,组件 PascalCase,页面目录 kebab-case,hook 用 useCamelCase,store 为 {feature}.store.ts 等,barrel 始终是 index.ts。
框架适配:模型在 Next.js App Router、React + Vite SPA、Remix、Expo / React Native 中一致,仅路由层不同,路由文件保持轻薄,从模块 barrel 导入页面组件渲染。
限制:不规定视觉设计,需搭配设计/组件类技能;具体安装命令、收费与平台支持情况暂未提供。