当前位置: 首页 > news >正文

Vue前端页面嵌入mermaid图表--流程图

一、安装Mermaid

首先,你需要在你的项目中安装Mermaid。可以通过npm或yarn来安装:

npm install mermaid --save
# 或者
yarn add mermaid

结果如图:

二、Vue

方法一:使用pre标签

使用ref属性可以帮助你在Vue组件中访问DOM元素

<template><div class="screen-contanier" id="workstation"><pre class="mermaid" ref="mermaid">flowchart TDA[Start] --> B{Is it?}B -- Yes --> C[OK]C --> D[Rethink]D --> BB -- No ----> E[End]</pre></div>
</template>
<script>import * as mermaid from 'mermaid';
</script>

直接使用div标签不起作用原因:

Mermaid未正确初始化:确保在你的Vue组件的mounted钩子中正确调用了Mermaid的初始化函数。Mermaid需要在DOM元素完全加载后才能正确初始化。

<pre>标签和<div>标签在处理文本和布局上有着本质的区别,这可能是你遇到Mermaid在<div>中不起作用的原因之一。

<pre>标签用于预格式化文本,它会保留空格和换行,使得内部的文本能够原样输出,这对于Mermaid语法尤其重要,因为它依赖于特定的格式和缩进。

然而,<div>是一个块级元素,它默认不会保留空白字符和换行。这意味着当你在<div>中输入Mermaid语法时,所有的空格和换行会被浏览器忽略,从而破坏了Mermaid语法的结构,导致Mermaid无法正确解析和渲染图表。

方法二:使用div标签

<template><div class="screen-contanier" id="workstation"><div class="mermaid" ref="mermaidGraph">flowchart TDA[Start] --> B{Is it?}B -- Yes --> C[OK]C --> D[Rethink]D --> BB -- No ----> E[End]</div></div>
</template>
<script>import * as mermaid from 'mermaid';export default {name: 'MermaidExample',mounted() {mermaid.initialize({ startOnLoad: true });this.renderMermaid();},methods: {renderMermaid() {mermaid.init(undefined, this.$refs.mermaidGraph);},},
};
</script><style scoped>.mermaid {/* 确保有足够空间显示图表 *//* 样式 */height: 400px;
}
</style>

三、展示

 了解mermaid

可以参考之前的文章:

markdown的mermaid用法及例子_markdown mermaid-CSDN博客

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 探索二进制翻译,openKylin成功在RISC-V平台运行X86架构软件!
  • 李宏毅 深度学习 Deep 学习记录
  • 交叉编译工具链整理
  • 『 Linux 』信号的写入与保存
  • java课程设计项目之图书管理系统
  • Android APP CameraX应用(02)预览流程
  • Linux权限维持篇
  • 创业团队如何选择DevOps工具?
  • 计算机网络知识-面试点1
  • 快速入门了解Ajax
  • 【前端学习】CSS三大特性
  • JVM 11 的优化指南:如何进行JVM调优,JVM调优参数有哪些
  • h265decode解码1080P的故障溯源 [ 2 - 1 ]
  • 力扣高频SQL 50题(基础版)第六题
  • Conda和Pip有什么区别?
  • 4个实用的微服务测试策略
  • 78. Subsets
  • iOS编译提示和导航提示
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • rc-form之最单纯情况
  • vue2.0项目引入element-ui
  • Zsh 开发指南(第十四篇 文件读写)
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 后端_MYSQL
  • 基于HAProxy的高性能缓存服务器nuster
  • 简单基于spring的redis配置(单机和集群模式)
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 力扣(LeetCode)22
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • (31)对象的克隆
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (ZT)薛涌:谈贫说富
  • (二)fiber的基本认识
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转载)OpenStack Hacker养成指南
  • . Flume面试题
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET/C# 使用反射注册事件
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .Net6使用WebSocket与前端进行通信
  • .netcore 获取appsettings
  • /etc/sudoer文件配置简析
  • @Autowired自动装配
  • @RequestBody与@ModelAttribute
  • @RestController注解的使用