vue2 使用 markdown插件 v-md-editor

开始配置

v-md-editor 官方文档地址:https://code-farmer-i.github.io/vue-markdown-editor/zh/

1、npm 安装插件

npm i @kangc/v-md-editor -S

2、main.js 全局引入插件

/* v-md-editor 编辑器 start  */
/* 1、v-md-editor 基础引用  */
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,
});

/* 2、v-md-editor 代码块关键字高亮  */
import githubTheme from '@kangc/v-md-editor/lib/theme/github.js';
import '@kangc/v-md-editor/lib/theme/style/github.css';
// 引入所有语言包
import hljs from 'highlight.js';
VueMarkdownEditor.use(githubTheme, {
  Hljs: hljs,
});
Vue.use(VueMarkdownEditor);

/* 3、v-md-editor 二次封装  */
import mdEditor from '@/components/v-md-editor/index';
Vue.component('MdEditor', mdEditor);
/* v-md-editor 编辑器 end  */

3、二次封装插件

1、二次封装
2、main.js 全局引入( 第二部已加入)

在 components 目录下创建 v-md-editor 文件夹并创建文件 index.vue

在这里插入图片描述

index.vue 代码如下

<!--
详见: https://blog.csdn.net/qq_41463655/article/details/125340036
 -->

<template>
    <div>
        <v-md-editor v-model="editorValue"
                     :disabled-menus="[]"
                     @upload-image="handleUploadImage"
                     height="400px"></v-md-editor>
    </div>
</template>

<script>
    export default {
        name: 'mdEditor',
        data() {
            return {
                editorValue: this.content != null ? this.content : "",
            }
        },
        props: {
            // 接收值父组件传递值
            content: String
        },
        created() {
            console.log("--------加载md编辑器")
        },
        methods: {
            // v-md-editor 文件上传
            handleUploadImage(event, insertImage, files) {
                // console.log(files);
                // 上传
                for (let i = 0; i < files.length; i++) {
                    this.crud.upload(files[i], "image/vMdEditor/").then(res => {
                        // 获取返回数据
                        let data = res.data.data;
                        // 添加图片到内容
                        insertImage({
                            url: data.url,
                            desc: data.name
                        });
                    });
                }
            },
        },
        watch: {
            editorValue: function (newNum, oldNum) {
                // 修改调用者传入的值
                this.$emit('update:content', newNum)
            }
        },
    }
</script>

<style>
</style>

4、使用

在任意地方使用

 <MdEditor :content.sync="obj.content"></MdEditor>

效果如下,图片上传支持 cv, qq,wx截屏上传
在这里插入图片描述

5、关于编辑无法回显

初始化 MdEditor 编辑器过早, 可能导致数据无法正常回显
通过 v-if 控制 MdEditor 加载时间 (如下:在调用接口获取数据完成之后修改 initSuccess = true)

 <MdEditor v-if="initSuccess" :content.sync="obj.textThree"/>

结尾

  • 个人开源项目(快速开发项目利器- 通用后台管理系统 )–> https://gitee.com/wslxm/spring-boot-plus2 , 喜欢的可以看看

  • 关注公众号【兮家】,不定时分享干货内容哦*
    在这里插入图片描述

  • 本文到此结束,如果觉得有用,动动小手点赞或关注一下呗,将不定时持续更新更多的内容…,感谢大家的观看!

### 集成 `v-md-editor` 到 Vue 3 项目 为了在 Vue 3 项目中集成 `v-md-editor`,可以遵循以下方法: #### 安装依赖库 首先,在终端执行命令安装必要的包。对于 `v-md-editor` 的集成来说,主要需要安装该编辑器本身以及可能涉及的一些样式文件。 ```bash npm install v-md-editor --save ``` 如果希望使用高亮功能,则还需要额外引入代码高亮的支持工具,比如 `shiki` 或者其他支持的语言语法解析插件[^1]。 ```bash npm i @vueup/vue-quill shiki ``` #### 导入并注册组件 接着,在项目的入口文件或者全局配置的地方导入 `v-md-editor` 并完成初始化设置工作。这通常是在 main.js 文件里完成的操作。 ```javascript import { createApp } from 'vue'; import App from './App.vue'; // Import and register the editor component globally. import VMdEditor from 'v-md-editor'; import 'v-md-editor/lib/style/base-editor.css'; // Base styles. const app = createApp(App); app.use(VMdEditor).mount('#app'); ``` #### 使用自定义主题或扩展能力 除了基本的功能外,还可以通过官方文档了解如何进一步定制化外观、行为等方面的内容来满足特定需求。例如更改默认的主题颜色方案或是添加新的按钮到工具栏上等等[^2]。 #### 实际应用案例展示 最后一步就是按照实际业务逻辑去编写模板部分了。可以在页面中的某个地方放置 `<v-md-editor>` 标签即可快速创建一个富文本区域供用户输入Markdown格式的文字内容。 ```html <template> <div id="editor"> <!-- A simple markdown editor --> <v-md-editor v-model="text"></v-md-editor> </div> </template> <script setup lang="ts"> import { ref } from 'vue'; let text = ref(''); </script> ``` 以上就是在 Vue 3 中成功集成了 `v-md-editor` 后的一个简单例子说明。更多高级特性和详细的参数选项建议查阅官方提供的最新版本指南获取更多信息。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值