name: sync-miniapp-to-ray description: 同步 miniapp-smart-ui 的组件变更到 ray-smart-ui。处理 Props 转 TypeScript Interface、WXML 转 React TSX 以及 README 同步。
Miniapp to Ray 同步指南
本 Skill 用于指导 AI 如何精准地将微信小程序组件代码转换为 Ray (React) 风格的代码。
核心转换规则
1. 属性转换 (Props -> TS Interface)
- 目标文件:
ray-smart-ui/src/@types/<组件名>/index.ts - 规则:
- 将小程序
SmartComponent的props定义改动的内容转换为 TypeScript 接口。 - 接口命名规范:
Smart<ComponentName>Props。 - 保持原有的 JSDoc 注释。
- 包含事件定义:
Smart<ComponentName>Events,使用SmartEventHandler<any>。
- 将小程序
2. Demo 转换 (WXML -> TSX)
- 目标文件:
ray-smart-ui/example/src/pages/<组件名>/index.tsx - 规则:
- 多语言: 使用
Strings.getLang('key')替换I18n.t('key')。 - 组件名: 转换为大写驼峰(如
<smart-button>-><Button>)。 - 属性名:
custom-class->customClass或className。- 其他连字符属性转为小驼峰(如
loading-text->loadingText)。
- 事件:
bind:click="onClick"->onClick={onClick}。 - 结构: 使用
<DemoBlock>包裹示例。
- 多语言: 使用
3. 文档同步 (README)
- 目标文件:
ray-smart-ui/src/<组件名>/README.md、ray-smart-ui/src/<组件名>/README.en.md - 规则:
- API 同步: 保持 API 表格内容同步,确保描述准确;
- Demo 同步:
- Demo 同步将修改的 TSX demo 内容同步到 README 内;
- demo 标题必须是 key 所对应 strings.ts 内的中英文实际文案,不可以写
Strings.getLang('key'); - 每一个 demo 都必须要有一段描述信息
执行指令
当收到 git diff 时,请:
- 仅针对 Diff 中涉及的行进行修改。
- 保持
ray-smart-ui现有的代码风格(如缩进、单引号等)。 - 确保导入路径正确(如从
@ray-js/smart-ui导入组件)。