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>
相关推荐
Python私教1 小时前
Pure-Admin-Thin 深度解析:完整版和精简版到底怎么选?
vue.js·人工智能·开源
ayqy贾杰3 小时前
Cursor SDK发布!开发者可直接搬走其内核
前端·vue.js·面试
李白的天不白4 小时前
vue 数据格式问题
前端·vue.js·windows
小白蒋博客4 小时前
【ai开发段永平投资理财的知识图谱网站】第一天:搭 Vite + Vue 项目,跑通 Hello World
vue.js·人工智能·trae
@yanyu66614 小时前
登录注册功能-明文
vue.js·springboot
滕青山18 小时前
在线PDF拆分工具核心JS实现
前端·javascript·vue.js
光影少年1 天前
前端在页面渲染优化和组件优化经验?
前端·vue.js·react.js·前端框架
李白的天不白1 天前
VUE依赖配置问题
前端·javascript·vue.js
小智社群1 天前
获取贝壳新房列表
前端·javascript·vue.js
一 乐1 天前
茶叶商城|基于springboot + vue茶叶商城系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·茶叶商城系统