Runtime API / Interface

FlamoComponentApi

把组件 Artifact factory、创建、挂载和契约查询收敛为一个调用接口。

使用说明

它适合为代码创作的组件提供一致入口:

调用 结果
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。参见 组合多个组件并封装为新组件。

参数

propsP