Fero DSL → React 自动化转换 · Claude Code 驱动 · AST 解析 · 零运行时依赖
{
"type": "FeroTable",
"props": {
"dataSource": "@api:fetchOrderList",
"columns": [
{ "key": "orderId", "title": "订单号" },
{ "key": "status", "title": "状态",
"render": "@component:StatusTag" }
],
"pagination": true,
"rowKey": "orderId"
}
}
{
"component": "Table",
"library": "@team/ui",
"props": {
"dataSource": {
"type": "api-call",
"fn": "fetchOrderList"
},
"columns": [
{ "dataIndex": "orderId",
"title": "订单号" },
{ "dataIndex": "status",
"title": "状态",
"render": {
"type": "component",
"name": "StatusTag"
}}
],
"rowKey": "orderId"
}
}
import { Table } from '@team/ui'
import { StatusTag } from '../ui'
import { useOrderList } from '../model'
const columns = [
{ dataIndex: 'orderId',
title: '订单号' },
{ dataIndex: 'status',
title: '状态',
render: (v) => <StatusTag value={v} /> },
]
export const OrderList = () => {
const { list, loading } = useOrderList()
return (
<Table
dataSource={list}
columns={columns}
loading={loading}
rowKey="orderId"
/>
)
}
通过skill调用component-map.ts 和 prop-transformer.ts 静态映射处理,速度快、结果稳定、可单测覆盖。
dataSource、columns、rowKey@api:xxx → 对应 API 函数调用规则无法覆盖的复杂节点交由 Claude Code Agent 处理,Agent 读取 CLAUDE.md 中的目标工程规范,生成符合团队标准的代码。
@component:xxx 引用的内联逻辑迁移产物直接输出到 Monorepo 对应 package 的 src/pages/ 目录下,遵循 FSD 结构,可立即被 Webpack 构建、被 CI 流程检测,无需额外的手工整理步骤。diff-check.sh 在迁移完成后对比新旧页面的 API 调用记录,确保接口行为一致。