使用说明
它适合为代码创作的组件提供一致入口:
| 调用 | 结果 |
|---|---|
Card(props) |
生成一个规范化 Artifact |
Card.artifact(props) |
显式生成同一个 Artifact |
Card.create(props, options) |
使用模块默认 Runtime 创建 Instance |
Card.mount(target, props, options) |
使用模块默认 Runtime 创建并挂载 Instance |
Card.contract(props) |
读取组件面向宿主的 wrapper contract |
.create() 和 .mount() 使用 @flamo/runtime 的默认 Runtime。需要指定 Runtime 时,先生成 Artifact,再显式交给目标 Runtime:
const props = { title: '账户' };const artifact = Card(props);const instance = await runtime.create({ artifact, props });Card.mount() 属于 Component API:它先生成 Artifact,再委托默认 Runtime 创建并挂载一个新 Instance。它不是返回对象上的方法;const instance = await Card.create(...) 之后不能调用 instance.mount(target)。
Component API 是普通 JavaScript 值,可以使用 ES Module 导入导出并作为可复用创建入口。Instance 则是调用后产生的运行态句柄:同一 JavaScript realm 内可以导入导出它的活引用,但不能随组件模块一起序列化、发布或跨环境恢复。
createFlamoComponentApi() 负责把一个 Artifact factory 变成便捷调用入口,但不会把若干 live Instance 自动编译成新组件。多组件层级应先使用 defineFlamoComponent() 构造 Composition IR,再生成新的 Artifact。参见 组合多个组件并封装为新组件。