说明
面向“AI 生成图示 / 文档可视化 / 流程与架构讲解”的图表组件。与
常见能力:
- 把 Mermaid 文本渲染成 SVG:流程图 / 时序图 / 类图 / 甘特图 / 状态图 等
- mermaid 库惰性加载并缓存:优先宿主 window.mermaid,否则按 Source 动态 import(默认 jsDelivr ESM,可自托管离线)
- Theme 默认跟随框架明暗、切主题自动重绘;可显式 default / neutral / dark / forest
- Code 或 Theme 变化自动重绘;预渲染阶段安全跳过、不抛异常
- SecurityLevel 默认 strict(净化防注入),UseMaxWidth 让图形按容器自适应,Height 设定最小高度
- 内置加载 / 失败(含 mermaid 报错细节)/ 空态,状态文案走词条;OnRendered / OnError 回调
- AI 家族中少数需 JS 互操作的组件:承载模型生成的结构化图,与 CodeHighlighter 展示源码互补
用法
<Mermaid Code="@diagram" Height="300px" OnError="@OnError" />
@code {
string diagram = "graph TD; A[开始]-->B{校验}; B-->|是|C[通过]; B-->|否|D[驳回];";
void OnError(string err) => UI.Warn("图表渲染失败", err);
}
API 参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Code |
string |
null |
Mermaid 图表源码(业务数据,不本地化)。留空显示空态。 |
EmptyText |
string |
"暂无图表" |
空态文案(翻译键)。默认“暂无图表”。 |
ErrorText |
string |
"图表渲染失败" |
失败态文案(翻译键)。默认“图表渲染失败”。 |
Height |
string |
null |
容器最小高度(如 “240px”)。留空则随内容自适应。 |
Id |
string |
null |
渲染容器 DOM id。留空则自动生成(内部经 getElementById 注入 SVG)。 |
LoadingText |
string |
"渲染中..." |
加载态文案(翻译键)。默认“渲染中...”。 |
OnError |
EventCallback<string> |
— | 事件 渲染失败回调(回传错误信息)。 |
OnRendered |
EventCallback<string> |
— | 事件 渲染成功回调(回传当前图表源码)。 |
SecurityLevel |
string |
"strict" |
安全级别:strict(默认,净化标签)/ loose(允许标签内 HTML)。 |
Source |
string |
null |
自定义 mermaid ESM 地址(离线 / 内网时指向自托管文件)。留空则用内置默认的 jsDelivr ESM。 |
Theme |
string |
null |
mermaid 主题:default / neutral / dark / forest。留空则跟随框架明暗(暗→dark,亮→default)。 |
UseMaxWidth |
bool |
true |
是否让流程图等按容器宽度自适应(mermaid flowchart.useMaxWidth)。默认 true。 |
Visible |
bool |
true |
取得或设置组件是否可见,默认为false。 |
VisibleChanged |
EventCallback<bool> |
— | 事件 取得或设置组件可见性变化时的回调事件。 |
Class |
string |
null |
取得或设置组件的CSS类名,用于自定义样式。 |
Disabled |
bool |
false |
取得或设置组件是否禁用,默认为false。 |
Style |
string |
null |
取得或设置组件的内联样式,用于自定义样式。 |
所有组件均继承
BaseComponent,除上表参数外还支持Class、Style、Disabled、Visible。
扫码关注公众号
扫码加入 QQ 群