MDAN MDAN Docs
官网

Web 运行时

@mdanai/sdk/web 是浏览器侧 MDAN 运行时,本身不负责 UI 渲染。

它读取服务端写进 HTML 的初始状态,负责发请求、维护页面和 block 状态,并把这些状态暴露给任意渲染层。

如果你想理解这页,可以先抓住一句话:web 负责“交互怎么继续”,UI 要不要自己画,是另一件事。

基本用法

import { createHeadlessHost } from "@mdanai/sdk/web";

const host = createHeadlessHost({ root: document, fetchImpl: window.fetch });
host.mount();

host.subscribe((snapshot) => {
  console.log(snapshot.route, snapshot.blocks);
});

这是浏览器侧推荐的主线路径:

当框架接管 UI 时,推荐直接使用这组接口:

它真正负责什么

挂载后,这个运行时会:

也就是说,它负责的是交互过程本身,不是视觉呈现。

运行时状态

这套运行时暴露了一套很小的状态 API:

host.subscribe((snapshot) => {
  console.log(snapshot.status);
});

当前状态包括:

和 elements 的关系

可以把它们理解成:web 负责跑,elements 负责显示。