2.10.0
EN
Skip to content

Mermaid 图表 ​

用于渲染 Mermaid 图表。对齐 React @ant-design/x Mermaid(2.10)。

独立组件。Markdown 插件 Mermaid 仍保留,二者用途不同(插件 ≠ 本组件)。

何时使用 ​

  • 在应用中渲染支持缩放、平移、图像/代码双视图切换的交互式 Mermaid 图表。
  • 与 XMarkdown 结合,通过 components.code 渲染 mermaid 围栏代码块。

代码演示 ​

基本 ​

基本

基础用法。

自定义 Header ​

Login Flow
自定义 Header

通过 header 自定义头部;传 null / false 可隐藏。

Header Actions ​

Header Actions Configuration

Header Actions

通过 actions 控制缩放 / 下载 / 复制与自定义操作。

配合 XMarkdown ​

配合 XMarkdown

在 Bubble + XMarkdown 中作为 components.code 渲染 mermaid 围栏。

API ​

MermaidProps ​

属性说明类型默认值版本
childrenMermaid 代码内容(也可用默认插槽)string--
header头部内容;null / false 时不显示默认头VNode | string | (() => …) | false | null--
classNames语义化 classNamePartial<Record<'root' | 'header' | 'graph' | 'code', string>>--
styles语义化 stylePartial<Record<'root' | 'header' | 'graph' | 'code', CSSProperties>>--
highlightProps代码视图的高亮配置Record<string, unknown>--
configmermaid.initialize 配置(请保持引用稳定)MermaidConfig--
actions操作栏配置{ enableZoom?: boolean; enableDownload?: boolean; enableCopy?: boolean; customActions?: ItemType[] }{ enableZoom: true, enableDownload: true, enableCopy: true }-
onRenderTypeChange视图切换回调(value: 'image' | 'code') => void--
prefixCls样式类名前缀string--
rootClassName根节点额外 classstring--
style根节点样式CSSProperties--

Slots ​

插槽名说明
defaultMermaid 代码内容
header自定义头部

Mermaid Ref ​

属性说明类型
nativeElement获取原生 DOM 节点HTMLElement

SemanticType ​

名称说明
root根节点
header头部容器
graph图表容器
code代码容器

Semantic DOM ​

  • root
    根节点
  • header
    头部
  • graph
    图表区
  • code
    代码区

主题变量(Design Token) ​

Token说明默认
colorBgTitle标题背景颜色colorFillContent
colorTextTitle标题文本颜色colorText
colorBorderCode代码块边框颜色colorBorderSecondary
colorBorderGraph图表边框颜色colorBorderSecondary

FAQ ​

使用 config 时,如何避免重复渲染或重复初始化? ​

当传递 config prop 时,请确保其为引用稳定的对象。避免在模板中直接传入对象字面量(如 :config="{ theme: 'base' }"),否则每次父组件重渲染都会触发 Mermaid 重新初始化。

推荐做法:

ts
import { computed } from 'vue';

// 动态配置:使用 computed 缓存
const config = computed(() => ({
  theme: isDark.value ? 'dark' : 'base',
  fontFamily: 'monospace',
}));

// 静态配置:提取为常量
const CONFIG = { theme: 'base', fontFamily: 'monospace' } as const;

贡献者 ​

贡献者

正在加载贡献者信息...