Vue3——v-md-editor安装使用教程

安装

yarn add @wangeditor/editor
# 或者 npm install @wangeditor/editor --saveyarn add @wangeditor/editor-for-vue@next
# 或者 npm install @wangeditor/editor-for-vue@next --save

EditorMarkdown.vue页面用来封装此编辑器组件
Test.vue作为接受EditorMarkdown.vue的父组件,当测试页使用
路由部分要放入test.vue

  1. main.js部分全局引入组件
import EditorMarkdown from '@/components/EditorMarkdown.vue';
app.component('EditorMarkdown',EditorMarkdown)
  1. EditorMarkdown页面引入
<!-- author: Mr.J -->
<!-- date: 2023-03-29 15:01:56 -->
<!-- description: Vue3+JS代码块模板 -->
<template><!-- 这里需要注意一下,官网上给的引入方式需要改一下,应该是没有更新导致的;还有一点就是modelValue需要添加括号,否则找不到这个值 --><VueMarkdownEditor v-model="(modelValue)" :height="height+'px'"></VueMarkdownEditor>
</template><script setup>
import VueMarkdownEditor from "@kangc/v-md-editor";
import "@kangc/v-md-editor/lib/style/base-editor.css";
import vuepressTheme from "@kangc/v-md-editor/lib/theme/vuepress.js";
import "@kangc/v-md-editor/lib/theme/style/vuepress.css";import Prism from "prismjs";VueMarkdownEditor.use(vuepressTheme, {Prism,
});const props = defineProps({modelValue: {type: String,default: "",},height: {type: Number,default: 500,},
});
</script><style>
</style>

官网给出的教程图片如下:

这里会发现有些误差,调整一下即可
还有一点要注意的是如果直接将props中的值给到v-model需要加上括号,下面是代码片段
Test.vue

<!-- author: Mr.J -->
<!-- date: 2023-03-29 15:03:56 -->
<!-- description: Vue3+JS代码块模板 -->
<template><editor-markdown></editor-markdown>
</template><script setup>
import { ref,reactive,onMounted } from "vue";
</script>
<style>
</style>

图片上传

 <VueMarkdownEditor v-model="(modelValue)" :disabled-menus="[]" :include-level="[1,2,3,4,5,6]"@upload-image="handleUploadImage"></VueMarkdownEditor>
const handleUploadImage = async(event, insertImage, files) => {console.log(files);// 这里做自定义图片上传let result = await proxy.Request({url:'/file/Image',dataType:'file',params:{file:files[0],type:1,}})if (!result) {return}const url = proxy.globaInfo.imageUrl+ result.data.fileNameinsertImage({url:url,desc: '博客图片',// width: 'auto',// height: 'auto',});
};

测试双向绑定

  <VueMarkdownEditor v-model="(modelValue)"  @change="change" :height="height+'px'"></VueMarkdownEditor>
// 子传父
const emit = defineEmits()
const change=(markdownContent,htmlContent)=>{emit('update:modelValue',markdownContent)emit('htmlContent',htmlContent)
}

test.vue进行测试

<template><editor-markdown v-model="markdownContent"></editor-markdown>{{ markdownContent }}
</template><script setup>
import { ref,reactive,onMounted } from "vue";
const markdownContent = ref('# test')
</script>
<style>
</style>

效果如下:

这样一个组件就已经封装好了
以下附上完整代码:
EditorMarkdown.vue

<!-- author: Mr.J -->
<!-- date: 2023-03-29 15:01:56 -->
<!-- description: Vue3+JS代码块模板 -->
<template><!-- :disabled-menus="[]"把禁用的title放在此数组中:include-level="[1,2,3,4,5,6]" 点击目录导航的层级@upload-image="handleUploadImage"图片上传@change="change"双向绑定效果--><VueMarkdownEditor v-model="(modelValue)" :disabled-menus="[]" :include-level="[1,2,3,4,5,6]"@upload-image="handleUploadImage" @change="change" :height="height+'px'"></VueMarkdownEditor>
</template><script setup>
import VueMarkdownEditor from "@kangc/v-md-editor";
import "@kangc/v-md-editor/lib/style/base-editor.css";
import vuepressTheme from "@kangc/v-md-editor/lib/theme/vuepress.js";
import "@kangc/v-md-editor/lib/theme/style/vuepress.css";import Prism from "prismjs";
import { getCurrentInstance } from "vue";
const {proxy} = getCurrentInstance()
VueMarkdownEditor.use(vuepressTheme, {Prism,
});const props = defineProps({modelValue: {type: String,default: "",},height: {type: Number,default: 500,},
});const emit = defineEmits()
const change=(markdownContent,htmlContent)=>{emit('update:modelValue',markdownContent)emit('htmlContent',htmlContent)
}const handleUploadImage = async(event, insertImage, files) => {console.log(files);// 这里做自定义图片上传let result = await proxy.Request({url:'/file/uploadImage',dataType:'file',params:{file:files[0],type:1,}})if (!result) {return}const url = proxy.globaInfo.imageUrl+ result.data.fileNameinsertImage({url:url,desc: '博客图片',// width: 'auto',// height: 'auto',});
};
</script><style>
</style>

Test.vue

<!-- author: Mr.J -->
<!-- date: 2023-03-29 15:03:56 -->
<!-- description: Vue3+JS代码块模板 -->
<template><editor-markdown v-model="markdownContent"></editor-markdown>{{ markdownContent }}
</template><script setup>
import { ref,reactive,onMounted } from "vue";const markdownContent = ref()
</script>
<style>
</style>

Vue3——v-md-editor(markDown编辑器)使用教程相关推荐

  1. SpringBoot整合Editor.md实现Markdown编辑器

    Editor.md 是一款开源的.可嵌入的 Markdown 在线编辑器(组件),基于 CodeMirror.jQuery 和 Marked 构建. 文章目录 一.技术选型及分支部署 二.集成手册 2 ...

  2. Typora ——一款Markdown编辑器入门教程

    Typora --Markdown编辑器入门教程 附上目录: 文章目录 Typora --Markdown编辑器入门教程 一. 序 二.前言 那么,什么是富文本格式?什么是Markdown? **Ma ...

  3. editor.md中markdown编辑器的实现

    ​ markdown编辑器我觉得用起来非常的方便,故我就想实现一个简单的markdown编辑器 1.下载editor.md插件 git地址:https://github.com/pandao/edit ...

  4. Typora颠覆写作体验的极简好用 Markdown 编辑器基本设置教程

    Typora是一款Markdown编辑器. 无论你是建网站写博客.每天写日记.自媒体写稿.办公.程序员写代码文档等等,Typora 都能满足你的要求. Typora基本设置教程 1."通用& ...

  5. CSDN Markdown编辑器使用教程

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...

  6. MWeb Pro for Mac(苹果电脑最好用的Markdown编辑器)安装教程

    MWeb Pro是一款专业的Mac平台上的Markdown编辑器,可以帮助用户更加高效地书写和排版文本内容,支持多种文本格式的导入和导出,如HTML.RTF.PDF等,还支持实时预览和代码高亮等功能, ...

  7. CSDN Markdown编辑器编辑教程

    目录 快捷键 文字样式设置(字体, 大小, 颜色, 高亮底色)内嵌HTML 表格 定义列表 代码块 脚注 数学公式 UML 图: 离线写博客 常见颜色 @[TOC](目录) 快捷键 - 加粗 `Ctr ...

  8. Editor.md 的Markdown 编辑器集成与使用(全)

    在这之前使用的编辑器是ueditor,是百度的:现在记录一下已经集成有段时间的 Editor.md 的 md 编辑器,确实好用! 在这之前,有个问题,数据库是保存 md 的还是保存 html 的,在网 ...

  9. editor.md国产markdown编辑器使用实例

    插件名:editor.md 下载地址:https://pandao.github.io/editor.md/examples/index.html 适用版本:version v1.5.0 日期:201 ...

最新文章

  1. sqlserver清除日志
  2. 新乡职业学院对口计算机分数线,新乡职业技术学院2020年录取分数线(附2017-2020年分数线)...
  3. 面试旧敌之红黑树(直白介绍深入理解)
  4. python opencv cv.waitKey(1) 0xFF 的作用
  5. Spark配置属性整理(非常全面)
  6. HDU 4619 Warm up 2 (多校)
  7. vscode 默认初始化_前端vscode 环境初始化
  8. 数据结构 python堆_Python中的堆栈数据结构是什么?
  9. SQL数据旋转的问题
  10. Node.js实现一个HTTP服务器
  11. 如何解决360的导航一直绑定为首页(亲测有效)
  12. Kubuntu中搜狗拼音输入法候选框乱码问题解决
  13. 安装mantis 2.14
  14. ping 不通百度问题的解决
  15. Dynamic Convolution: Attention over Convolution Kernels
  16. Elsevier系统LaTex编译不成功,无法生成PDF的解决方案
  17. matlab冒号分号区别,matlab : 关于冒号 用法大全以及实例
  18. 灰色系统预测模型GM(1,1),GM(1,n)及Matlab实现
  19. matlab如何画双x坐标,matlab画双坐标图
  20. 非极大值抑制(non-maximum suppression)的理解

热门文章

  1. Fiddler如何进行弱网测试
  2. java医院门诊预约挂号排班系统ssm
  3. SOM神经网络图像分类tensorflow实现
  4. python pymssql - pymssql模块官方文档的翻译
  5. 大数据产品价值主张_十年之后 大数据的价值主张
  6. 乐创杯c语言大赛形式,【连载】(学了这么多年C语言,你真的了解static关键词吗)乐创DIY C语言讲义​——4.4节...
  7. AS WIFI 无线调试
  8. UVA 几道dp题总结
  9. 创新型中小企业认定评定标准
  10. 使用git强行切换分支