Vue3中对v-md-editor编辑器的集成使用

效果展示:

首先安装需要的包

html 复制代码
npm i @kangc/v-md-editor@next -S

在main.js中进行全局配置

javascript 复制代码
import VMdEditor from '@kangc/v-md-editor/lib/codemirror-editor';
import '@kangc/v-md-editor/lib/style/codemirror-editor.css';
import githubTheme from '@kangc/v-md-editor/lib/theme/github.js';
import '@kangc/v-md-editor/lib/theme/style/github.css';

// highlightjs
import hljs from 'highlight.js';

// codemirror 编辑器的相关资源
import Codemirror from 'codemirror';
// mode
import 'codemirror/mode/markdown/markdown';
import 'codemirror/mode/javascript/javascript';
import 'codemirror/mode/css/css';
import 'codemirror/mode/htmlmixed/htmlmixed';
import 'codemirror/mode/vue/vue';
// edit
import 'codemirror/addon/edit/closebrackets';
import 'codemirror/addon/edit/closetag';
import 'codemirror/addon/edit/matchbrackets';
// placeholder
import 'codemirror/addon/display/placeholder';
// active-line
import 'codemirror/addon/selection/active-line';
// scrollbar
import 'codemirror/addon/scroll/simplescrollbars';
import 'codemirror/addon/scroll/simplescrollbars.css';
// style
import 'codemirror/lib/codemirror.css';

VMdEditor.Codemirror = Codemirror;
VMdEditor.use(githubTheme, {
	Hljs: hljs,
});


app.use(VMdEditor);

写一个编辑器组件:

html 复制代码
<template>
	<VMdEditor v-model="text" height="400px"></VMdEditor>
</template>

<script>
	import VMdEditor from '@kangc/v-md-editor/lib/codemirror-editor';
	export default {
		components: {
			VMdEditor,
		},
		data() {
			return {
				text: '',
			};
		},
	};
</script>

使用组件

html 复制代码
<template>
	<NavBar></NavBar>
	<ContentBase>
		<div class="row">
			<div class="col-3">
				<UserInfo></UserInfo>
			</div>
			<div class="col-9">
				<div class="row-1">
					<div class="markdown">
						<EditorView></EditorView>
					</div>
				</div>
				<div class="row-1">
					<UserPosts></UserPosts>
				</div>
			</div>

		</div>
	</ContentBase>
</template>

<script>
	import NavBar from "../components/NavBar.vue";
	import ContentBase from "../components/ContentBase.vue";
	import UserInfo from "../components/UserInfo.vue";
	import UserPosts from "../components/UserPosts.vue";
	import EditorView from "../components/EditorView.vue";
	export default {
		name: "UserProfile",
		components: {
			NavBar,
			ContentBase,
			UserInfo,
			UserPosts,
			EditorView,
		},
		data() {
			return {

			};
		},
		methods: {},
	};
</script>

<style scoped>
	EditorView {
		height: 400px;
		width: 200px;
	}

	.markdown {
		height: 400px;
		/* width: 200px; */
	}
</style>

其他的编辑器精美设计请移步官方文档:

https://github.com/imzbf/md-editor-v3/blob/develop/README-CN.md

相关推荐
灵感__idea6 小时前
Hello 算法:让前端人真正理解算法
前端·javascript·算法
向葭奔赴♡6 小时前
CSS是什么?—— 网页的“化妆师”
前端·css
黑犬mo6 小时前
在Edge、Chrome浏览器上安装uBlock Origin插件
前端·edge
excel6 小时前
🧩 Vue 3 watch 源码详解(含完整注释)
前端·javascript·vue.js
大前端helloworld6 小时前
前端梳理体系从常问问题去完善-网络篇
前端·面试
excel6 小时前
🌿 一文看懂 Vue 3 的 watch 源码:从原理到流程
前端
繁依Fanyi7 小时前
让工具说话:我在 Inspira Board 里用 AI 把“能用、好用、可复用”落成了日常
前端
weixin_456904278 小时前
C# 中的回调函数
java·前端·c#
kura_tsuki8 小时前
[Web网页] LAMP 架构与环境搭建
前端·架构
yinuo8 小时前
UniApp+Vue3多分包引入同一 npm 库被重复打包至 vendor 的问题分析与解决
前端