Vditor - Markdown编辑器使用

1、安装

yarn add vditor

2、代码

import 'vditor/dist/index.css';
import React, { useEffect } from 'react';
import Vditor from 'vditor';
import './index.less';

const App = ({ setVditorValue, vditorValue }: any) => {
  const [vd, setVd] = React.useState<Vditor>();
  useEffect(() => {
    const vditor = new Vditor('vditor', {
      toolbar: [
        'emoji',
        'headings',
        'bold', //1
        'italic', //1
        'strike', //
        'link',
        '|',
        'list',
        'ordered-list',
        'check',
        'outdent',
        'indent',
        '|',
        'quote',
        'line',
        'code',
        'inline-code',
        'insert-before',
        'insert-after',
        '|',
        'upload',
        // "record",
        'table',
        '|',
        'undo',
        'redo',
        '|',
        'fullscreen',
        'edit-mode',
        {
          name: 'more',
          toolbar: [
            'both',
            'code-theme',
            'content-theme',
            'export',
            'outline',
            'preview',
            'devtools',
            'info',
            'help',
          ],
        },
      ],
      minHeight: 450,
      after: () => {
        vditor.setValue(vditorValue);
        console.log(vditorValue, '初始值');
        setVd(vditor);
      },
      upload: {
        url: '',
        token: getCookie('token') || '',
        setHeaders() {
          return {
            token: getCookie('token') || '',
          };
        },
        accept: 'image/jpeg,image/png,image/gif,image/jpg,image/bmp', // 图片格式
        success(editor, msg) {
          vditor?.focus();
          console.log('上传成功了', editor, msg, JSON.parse(msg));
          const { rows, flag } = JSON.parse(msg);
          if (flag && flag.retCode === '0') {
            showSuccess('图片上传成功');
            const { fileName, shareUrl } = rows[0];
            vditor?.insertValue(`![${fileName}](${shareUrl})`);
          }
        },
        error(msg) {
          showError('图片上传失败');
        },
      },
      input: (value) => {
        // setVditorValue(vditor.getHTML());
        setVditorValue(vditor.getValue());
      },
      mode: 'sv',
    });
  }, []);

  return (
    <div>
      <div id="vditor" className="vditor" />
    </div>
  );
};

export default App;

3、使用效果

在这里插入图片描述

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

呐呐呐呐。

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

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

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

打赏作者

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

抵扣说明:

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

余额充值