Mitosis 概览
Mitosis 是 JSX 的一个子集。它支持为多个前端框架生成代码,包括 React、Vue、Angular、Svelte 和 Solid。
目录
- 如何工作
- 格式选项
- 项目结构
- 组件
- 上下文
- 钩子
- 需注意的事项
- 可定制性
- 配置
- 命令行界面
如何工作
Mitosis 使用了受 Solid 启发的 JSX 的静态子集。这意味着我们可以将其解析为一个简单的 JSON 结构,然后轻松构建针对各种框架和实现的序列化器。
export function MyComponent() {
const state = useStore({
name: 'Steve',
});
return (
<div>
<input value={state.name} onChange={(event) => (state.name = event.target.value)} />
</div>
);
}
转换为:
{
"@type": "@builder.io/mitosis/component",
"state": {
"name": "Steve"
},
"nodes": [
{
"@type": "@builder.io/mitosis/node",
"name": "div",
"children": [
{
"@type": "@builder.io/mitosis/node",
"name": "input",
"bindings": {
"value": "state.name",
"onChange": "state.name = event.target.value"
}
}
]
}
]
}
这可以被重新序列化为许多语言和框架。例如,要支持 Angular,我们只需创建一个循环遍历 JSON 并生成以下内容的序列化器:
@Component({
template: `
<div>
<input [value]="name" (change)="name = $event.target.value" />
</div>
`,
})
class MyComponent {
name = 'Steve';
}
通过插件系统,添加对框架的支持非常容易(文档即将推出)。
格式选项
Mitosis 支持生成代码以匹配您喜好的格式、库等的设置。这些输出选项将很快支持通过插件进行自定义和扩展。