vue 中实现markdown编辑器

在vue中使用markdown我使用到了mavon-editor组件,mavon-editor组件github地址:https://github.com/hinesboy/mavonEditor

一:下载mavon-editor

npm install mavon-editor

二:mavon-editor使用

html代码:

<template>
<div>
<mavon-editor v-model="content" ref="md" @change="change" @imgAdd="$imgAdd" style="min-height: 600px" />
</div>
</template>

js代码:

前提:需要引入mavon-editor

import { mavonEditor } from 'mavon-editor'
import 'mavon-editor/dist/css/index.css'

完整的js代码如下:

<script type="text/ecmascript-6">
// 导入组件 及 组件样式
import { mavonEditor } from 'mavon-editor'
import 'mavon-editor/dist/css/index.css'
export default {
 components: {
        mavonEditor,//mavon-editor组件
    },
data() {
 return {
            content:'', // 输入的markdown
            html:'',    // 转成的html
        }
},
methods: {
    change(value, render) {
        //实时获取转成html的数据
        this.html = render
        console.log(this.html)
    },
    // 将图片上传到服务器,返回地址替换到md中 
    $imgAdd(pos, $file){ 
        let formdata = new FormData(); 
     formdata.append('image', $file);
     this.$ajax({
       url: 'http://local.basic.com/index.php?r=markdown/upload',
       method: 'post',
       data: formdata,
     }).then((data) => {
        //将返回的url替换到文本原位置
               if (data.data.success == 1) {
               this.$refs.md.$img2Url(pos, data.data.url);
               console.log(data.data.url)
               }
               
           })
},
},
}
</script>

上面使用到了调取外部接口进行上传,调取外部接口方法可参考:vue.js结合axios实现跨域访问接口

上传接口可以参考:html+js 实现markdown编辑器效果 中的上传接口

到此在vue中实现markdown编辑器功能实现完成

现象如下:

image.png

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值