Token导航 LogoToken导航

Agent Skill · 开发

component-api-design(component API 设计)

用于辅助 API 设计、接口文档、请求响应结构和服务集成说明。它适合让 Agent 梳理 endpoint、生成 OpenAPI 草稿、检查字段命名、整理错误码或辅助前后端联调。使用时需要确认真实业务语义、鉴权方式、分页和错误处理规则;涉及生成接口文档时,应避免凭空补字段,最好从现有代码、schema 或接口样例中提取事实。

component-api-design 是开发类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为需要联网;许可证为 MIT-0,第三方扫描已通过,按安装量在开发类的 21,746 个 Skill 里排第 2,482。

总安装 16,848周安装 675GitHub Stars 公开资料未说明下载 5,454核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.1

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:component-api-design(component API 设计)
来源仓库:https://github.com/wangzhiming1999/component-api-design
安装命令:
openclaw skills install component-api-design
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install component-api-design

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

设计可重用的 React/Vue 组件接口规范。生成 OpenAPI 草稿并检查字段命名一致性。适用于前后端协作和组件库标准化建设。component-api-design 属于开发类 Skill,可作为该场景下的辅助能力补充。

安装命令:openclaw skills install component-api-design。应基于实际业务语义而非假设生成接口定义。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install component-api-design;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

component-api-design 怎么安装?

在终端执行 openclaw skills install component-api-design。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

component-api-design 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

component-api-design 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

component-api-design 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

component-api-design 用的人多吗?

公开数据是累计安装 16,848 次,近一周安装 675 次,下载 5,454 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

component-api-design 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
component-api-design

component API 设计 · 本页

16,848—需要联网MIT-0通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
component-api-design
description
Designs reusable React/Vue component APIs and file structure for clarity, flexibility, and maintainability. Use when 设计组件, 组件API, 封装组件, component design, or defining props/slots/events.

组件与 API 设计(Component & API Design)

设计易用、可扩展、易维护的组件 API 与文件结构,提升后续开发效率。

触发场景

  • 用户说「设计这个组件」「组件怎么封装」「API 怎么定」「props 怎么设计」
  • 要新建通用组件、业务组件或对现有组件做 API 升级

设计维度

1. 职责单一

  • 一个组件只做一类事(展示 / 表单 / 布局 / 反馈)
  • 若同时管「数据获取 + 展示 + 复杂交互」,考虑拆成容器 + 展示组件或拆子组件

2. Props 设计

原则说明
必要才加能由 children/组合表达的不要变成 prop
命名一致用项目约定:value/onChange、open/onOpenChange、disabled 等
类型明确TypeScript 定义清晰,必填/可选、联合类型写清
可控与不可控若支持受控,则 value + onChange 成对;可提供 defaultValue 做非受控
避免冗余能从现有 props 推导的不再单独提供(如 loading 时 disabled 可内部处理)

3. 扩展方式

  • children:默认内容区;复杂布局用 slots/render props(如 header、footer、itemRenderer)
  • className / style:允许外层控制布局和主题
  • 透传:表单类组件对 **aria-*、data-*、剩余 HTML 属性** 做透传,便于无障碍与测试
  • 主题/变体:用 variant/size 等枚举优于一堆布尔 prop(如 type="primary" size="md")

4. 事件与回调

  • 命名:on + 动词或 on + 名词 + 动词(onChange、onSubmit、onOpenChange)
  • 参数:先传「与事件强相关的数据」,再传原生 event(若需要)
  • 避免在回调里强塞过多业务逻辑,保持组件「中性」

5. 文件与目录

  • 单组件可单文件;组件带样式、类型、子组件多时可用目录:

- ComponentName/index.tsx(入口) - ComponentName/ComponentName.tsx(实现) - ComponentName/types.ts - ComponentName/styles.module.scss - ComponentName/SubPart.tsx(内部子组件)

  • 类型、常量、工具函数可共用的放上层或 shared

执行流程

1. 先判断用户在哪个阶段

用户描述实际需求第一步
「设计这个组件」「新建一个组件」从零设计问:这个组件是通用组件还是业务组件?会在几个地方用?
「这个组件 API 怎么改」「props 太多了」改现有组件先读现有代码,找出问题所在,再给改法
「props 怎么设计」「要不要用 children」具体设计决策直接给出该场景的推荐和理由
「要不要拆组件」拆分决策问:是因为文件太长,还是因为逻辑复用需要?两个原因的拆法不同

2. 从零设计时,先问清楚再动手

设计前必须知道:

  • 使用场景:在哪里用?用几次?(一次性业务组件 vs 多处复用的通用组件,设计原则完全不同)
  • 调用方是谁:同一个人写还是团队共用?(团队共用的要更严格的类型和文档)
  • 技术栈约束:项目用 Radix/shadcn 还是自己写?用 Tailwind 还是 CSS Modules?

通用组件和业务组件的设计原则不同:

| | 通用组件 | 业务组件 | |--|---------|---------| | props | 尽量少,保持中性 | 可以有业务语义 | | 样式 | 支持 className 覆盖 | 可以写死 | | 数据获取 | 不做,由外部传入 | 可以自己请求 | | 复杂度 | 宁可简单,不要过度设计 | 按业务需要 |

3. Props 设计的决策规则

遇到这些情况,给出明确建议:

「要不要加这个 prop」

  • 能用 children 或组合表达的 → 不加 prop(如 <Button icon={<Icon />}> 优于 <Button iconName="star">)
  • 只有一个地方用到的特殊行为 → 不加 prop,在调用处处理
  • 3 处以上地方需要这个行为 → 加 prop

「布尔 prop 还是枚举」

  • 两种状态 → 布尔(disabled、loading)
  • 三种及以上 → 枚举(variant="primary|secondary|ghost" 优于 isPrimary isSecondary isGhost)

「受控还是非受控」

  • 需要外部控制状态(如表单联动)→ 受控:value + onChange
  • 独立使用、不需要外部感知 → 非受控:defaultValue
  • 两种都支持 → 同时提供 value/onChange 和 defaultValue,内部用 useControllableState

「要不要透传 HTML 属性」

  • 表单类(input、button、select)→ 必须透传,用 ...rest 传给原生元素
  • 展示类容器 → 至少透传 className 和 style
  • 原因:不透传会导致调用方无法加 aria-*、data-*、事件监听

4. 给出设计方案时,必须包含反例

只给正确做法不够,要说明什么是错的:

// ❌ 错:用字符串传图标名,组件内部耦合图标库
<Button iconName="star" />

// ✅ 对:用 children 或 render prop,调用方决定用什么图标
<Button icon={<StarIcon />} />
// ❌ 错:一堆布尔 prop,互斥关系不清晰
<Button isPrimary isLarge isRounded />

// ✅ 对:枚举表达变体,组合表达修饰
<Button variant="primary" size="lg" rounded />

5. 文件结构的判断

  • 单文件(< 150 行,无子组件)→ 一个 .tsx 文件
  • 有样式文件或子组件 → 目录结构:
  Button/
  ├── index.tsx        # 导出入口
  ├── Button.tsx       # 实现
  ├── types.ts         # Props 类型
  └── Button.module.css
  • 不要过早拆目录,等真的需要时再拆

输出模板

## 组件设计:{组件名}

### 职责
- 一句话描述组件用途与使用场景

### API(Props)
| 属性 | 类型 | 必填 | 默认 | 说明 |
|------|------|------|------|------|
| … | … | … | … | … |

### 事件/回调
| 事件 | 参数 | 说明 |
|------|------|------|
| … | … | … |

### 插槽/扩展
- default:…
- 其他具名插槽:…

### 使用示例
\`\`\`tsx
<ComponentName ... />
\`\`\`

### 文件结构
- 路径与主要文件说明

与项目一致

  • 若项目用 Radix/shadcn:对齐其「组合 + 可控」风格与命名
  • 若项目用 Tailwind:组件根节点支持 className,内部用 cn() 合并
  • 表单组件与现有表单库(如 react-hook-form)的 value/onChange 约定保持一致

平台分布

OpenClaw

84.85%
按下载量换算4,628

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills