vue3 markMap使用

安装依赖

javascript 复制代码
pnpm install markmap-lib
pnpm install markmap-view
pnpm install markmap-common

vue代码

javascript 复制代码
<template>
	<div class="markmap-container">
		<svg ref="svgRef" style="width: 100%; height: 100%; border: 1px solid #ccc;"></svg>
	</div>
</template>

<script setup>
	import {
		ref,
		onMounted,
		watch
	} from "vue";
	import {
		Markmap
	} from "markmap-view";
	import {
		Transformer
	} from "markmap-lib";

	// Markdown内容
	const initValue = `# 礼物交换

## 张三
- 给李四一瓶酒 🍾
- 给王五一瓶酒 🍾

## 李四
- 收到张三一瓶酒 🍾
- 给王五一包烟 🚬

## 王五
- 收到李四一包烟 🚬
- 收到张三一瓶酒 🍾`;

	// 引用和响应式数据
	const svgRef = ref(null); // 改为svgRef
	const markmapInstance = ref(null); // 改为更清晰的变量名
	const transformer = new Transformer();

	// 更新思维导图的方法
	const updateMarkmap = async () => {
		if (!markmapInstance.value || !initValue) return;

		try {
			const {
				root
			} = transformer.transform(initValue);
			markmapInstance.value.setData(root);
			// markmapInstance.value.fit(); // 自动调整视图
		} catch (error) {
			console.error("Markmap渲染错误:", error);
		}
	};

	onMounted(() => {
		if (svgRef.value) {
			// 初始化Markmap实例
			markmapInstance.value = Markmap.create(svgRef.value, {
				autoFit: true
			});
			updateMarkmap();
		}
	});
</script>

<style>
	.markmap-container {
		width: 100%;
		height: 100dvh;
	}

	.markmap-container svg {
		font-family: sans-serif;
		background-color: #f9f9f9;
	}
</style>
相关推荐
FRing033 小时前
vue2干货总结2(v-bind、v-for、v-model、指令修饰符、v-bind操作class和style)
开发语言·前端·vue.js·vue2
徐小夕7 小时前
深度剖析 30k star 的编码 Agent DeepSeek-Reasonix:长会话 Token 成本直降 80%
前端·vue.js·github
ruanno_top9 小时前
1 万行表格只渲染 18 行:虚拟滚动让我放弃了三个功能
vue.js
仨孩子的爹9 小时前
套打总偏两毫米:预印刷单据的校准方法和三个误区
vue.js
徐小夕10 小时前
JitKnow知识库4.8发布:本体+知识图谱检索引擎,让AI回答不再“一本正经地胡说八道”
前端·vue.js·github
tryCbest10 小时前
Vue3——第 11 篇:组合式 API(上)——setup 与响应式 API 深度解析
前端·javascript·vue.js
tryCbest11 小时前
Vue3——第 13 篇:计算属性与侦听器——computed 与 watch 的进化
前端·javascript·vue.js
闲来没事抠鼻屎11 小时前
标签打印 8 个尺寸公式:小票、价签、吊牌、面单通用
vue.js
时间的情敌12 小时前
Vue3 + Cesium 实战:本地上传 GLB 模型、模型上叠加 GLB、点击控制透明度
前端·vue.js·cesium
小蒜学长14 小时前
基于SpringBoot+Vue的云南地区扶贫助农系统的设计与实现(代码+数据库+LW)
java·vue.js·spring boot·后端·乡村振兴