Vue项目集成markdown富文本编辑器,原来这么简单

本文档详细介绍了如何在 Vue 项目中集成 mavonEditor,包括安装依赖、注册组件、在 Vue 组件中使用编辑器以及处理图片上传和删除的方法。通过实例代码展示,帮助开发者快速搭建一个功能齐全的 Markdown 编辑环境。
摘要由CSDN通过智能技术生成

这里我们使用的是mavonEditor,官网文档:https://github.com/hinesboy/mavonEditor

效果图

在这里插入图片描述

1. 安装依赖

npm install mavon-editor --save

2. 在main.js中注册编辑器组件

// 注册mavon-editor组件
import mavonEditor from 'mavon-editor'
import 'mavon-editor/dist/css/index.css'
Vue.use(mavonEditor);

3. 集成到vue组件中

<template>
    <div class="editmd">
        <div class="div1">
            <el-input v-model="titleinput" placeholder="请输入文章标题(5~100个字)" class="titleinput" size="medium" minlength="5" maxlength="100" show-word-limit>
            </el-input>
            <el-button type="primary" round class="push-editmd" size="small">发布文章</el-button>
        </div>
        <div class="div2">
            <mavon-editor
                style="height: 100%"
                v-model="editorContent"
                :ishljs="true"
                ref=md
                @imgAdd="imgAdd"
                @imgDel="imgDel"
            ></mavon-editor>
        </div>
        
    </div>
</template>

<script>
  import { mavonEditor } from 'mavon-editor'
  import 'mavon-editor/dist/css/index.css';
  export default {
      data(){
          return {
             titleinput: "",
             editorContent: ""
          }
      },
      
      components: {
        mavonEditor
      },

      mounted(){
            window.addEventListener("beforeunload", this.beforeUnloadHandler, false)
      },
      destroyed() {
        window.removeEventListener("beforeunload", this.beforeUnloadHandler, false)
        },

      methods: {
        // 此处返回任意字符串,不返回null即可,不能修改默认提示内容
        beforeUnloadHandler(e) {
            e.returnValue = "离开此页面?"
        },
        // 图片上传
        imgAdd (pos, $file) {
            let formdata = new FormData()
            formdata.append('file', $file)
            this.$axios({
               url: '/file/upload',
               method: 'post',
               data: formdata,
               headers: { 'Content-Type': 'multipart/form-data;charset=UTF-8' ,
                'aaa':'aaa'
               },
           }).then((url) => {
               // 第二步.将返回的url替换到文本原位置![...](0) -> ![...](url)
            //    this.$vm.$img2Url(pos, url.data);
               this.$refs.md.$img2Url(pos, url.data);
           })
        },
        // 图片删除
        imgDel (pos) {
            delete this.imgFile[pos]
        }
      }
  }
</script>

<style scoped lang="less" src="@/assets/css/creation_editmd.scss"></style>

4. 看下效果

在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

i码充电桩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值