Ant design pro-项目探究(7)react的markdown编辑器

2023-10-27

前言

普通的input和textarea已满足大部分的文本记录,但想要让输入文本更加多样化,markdown编辑器可谓是yyds。但是vue版本的markdown编辑器众多,基于react版本的编辑器就相当少一些。以下是整合和探究react版本的markdown的实践。

  • react-markdown-editor-lite
    官网或者直接搜索即可获得安装的办法
npm install react-markdown-editor-lite --save
# or
yarn add react-markdown-editor-lite
  • 结合markdown-it
npm install markdown-it --save
  • 页面引入样式、react-markdown-editor-lite,结合markdown-it
import MarkdownIt from 'markdown-it';
import MdEditor from 'react-markdown-editor-lite';
// 导入编辑器的样式,不导入会出现毫无样式情况
import 'react-markdown-editor-lite/lib/index.css';
  • 组件调用
const Demo = () => {
// 数据保存
const [value, setValue] = useState("")
	// markdown-it 利用设置参数,具体查询markdown-it官网
  const mdParser = new MarkdownIt({
    html: true,
    linkify: false,
    typographer: true
  		}).enable('image');
	}
	// 检测markdown数据变化
  function handleEditorChange({html, text}) {
    setValue(text)
    console.log('handleEditorChange', html, text);
   }
return (
	<MdEditor
        value={value}
        onChange={handleEditorChange}
        renderHTML={text => mdParser.render(text)}
        style={
          {height: 400}
        }
        onImageUpload={
          async (file) => {
            const formData = new FormData()
            formData.append('files', file)
            // 自行图片上传功能,利用form文件表单
            return await postUrl(formData).then(
              (res => {
                if (res.code === 200) {
                  return res.data
                } else {
                  message.error("图片过大,请上传小于1mb的图片")
                }
              })
            )
          }
        }
      >
      </MdEditor>
	)
}

  • 运行截图

在这里插入图片描述

  • 至于其他功能可以利用markdown-it进行设置
  • 总结
    markdown的编辑器的调用并不困难,但是在实现图片上传这个功能时还是遇到了瓶颈,主要跟请求拦截器那块有了冲突,要先去掉拦截器的请求头部,让自动生成headers即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ant design pro-项目探究(7)react的markdown编辑器 的相关文章

随机推荐

  • java反序列化漏洞利用工具_Shiro反序列化漏洞利用汇总

    Apache Shiro是一个强大易用的Java安全框架 提供了认证 授权 加密和会话管理等功能 Shiro框架直观 易用 同时也能提供健壮的安全性 1 Shiro rememberMe反序列化漏洞 Shiro 550 1 1 漏洞原理 1
  • Angular2时间控件,多选下拉框,滑动菜单

    https cuppalabs github io components
  • DLL的编码

    cdecl 是C Declaration的缩写 declaration 声明 表示C语言默认的函数调用方法 所有参数从右到左依次入栈 这些参数由调用者清除 称为手动清栈 被调用函数 不会要求调用者传递多少参数 调用者传递过多或者过少的参数
  • 巴比特

    摘要 腾讯将于明日正式公布旗下大模型和 AI 聊天机器人 然而在发布前一天 微信就已经揭示了相关命名和图标 微信公众号和小程序显示 腾讯的 AI 大模型被命名为 腾讯混元大模型 多模态对话机器人被命名为 腾讯混元助手 图片来源 由无界AI生
  • [Mac OS X] 如何解决 “dtrace cannot control executables signed with restricted entitlements”?

    本文转载并参考至 http stackoverflow com questions 33476432 is there a workaround for dtrace cannot control executables signed wi
  • 用Python实现一个可定制风格的绘图系统

    文章目录 调用绘图风格控件 代码组织 源代码 base py aframe py alist py ds py Python绘图系统 从0开始的3D绘图系统 一套3D坐标 多个函数 散点图 极坐标和子图 自定义控件 绘图风格 风格控件 图表
  • 基于LSP的网络数据包截获(一) SPI

    SPI是Service Provider Interface WinSock2的服务提供者接口 WinSock2允许开发者编写自己的服务提供者接口SPI程序 自己编写的SPI程序安装到系统后 所有的WinSock请求会先发送到这个程序并由他
  • 基于OpenCV的硬币面值识别

    本项目通过Python与Opencv结合数字图像处理技术对 元 角 角三种硬币进行识别 首先通过Canny算子对图像进行边缘检测 然后进一步调用定义的函数去除边缘检测后图像中的孤立点 对处理后的图像进行Hough变换检测圆曲线 进而可以把圆
  • 橙子科技php_ser靶场学习记录

    该靶场为重庆橙子科技制作 主要是为了教学引导用的 所以里面的大部分题都不能算严格意义上的ctf题目 但是 这些题目可以很好地帮助理解并运用PHP反序列化知识 由于本文是我做靶场题目时分析题目的纯记录 当时没有认真写 所以可读性会不太好 Do
  • 临界区锁 InitializeCriticalSection()--- EnterCriticalSection()--LeaveCriticalSection()

    1 InitializeCriticalSection 此函数初始化一个临界区对象 格式 void InitializeCriticalSection LPCRITICAL SECTION lpCriticalSection 参数 lpCr
  • jmeter connect response timeout 默认超时时间

    jmeter connect response timeout 默认超时时间都是0 也就是会一直等下去 有时候不设置使用默认的配置 也会报错超时 这种超时可能是 nginx 等服务端主动断开 jmeter 源码 public int get
  • JavaWeb测试题

    第四小组 姓名 郑梦飞 说明 上方 组 填入所在的组 上方 姓名 填入自己的真实姓名 答题方式 基于Word文档基础上答题 编程题可利用工具编程完以后 复制到该文档内 答完以后 导成PDF 以姓名 PDF命名 上传至老师指定邮箱 一 选择题
  • VisualStudioCode开发Arm嵌入式Linux应用

    By Toradex胡珊逢 Visual Studio Code 在软件开发领域具有十分广泛的应用 其支持多种编程语言 丰富的插件极大得提高了开发效率 同时这也是一个非常开放的平台 本文接下来将介绍如何在 Visual Studio Cod
  • elasticearch 多种查询参数用法:

    range过滤器查询范围 gt gt 大于 lt lt 小于 gte gt 大于或等于 lte lt 小于或等于 多个range query bool filter range ymd gte 20181215 大于等于 lt 201812
  • GBase 8s数据库的空间管理

    GBase 8s数据库的空间管理 当使用GBase 8s的GBaseInit gbasedbt sh脚本创建数据库实例时 有一些参数无法指定 只能用于学习 真正的生产需要根据服务器的配置 规划并创建适合业务场景的数据库空间 以进行存储优化
  • 开发中RO,VO,DO,DTO,PO, BO, TO, CO, AO, SO的区别

    随着软件开发的不断发展 越来越多的概念被引入到开发中 其中就包括了RO VO DO DTO PO BO TO CO AO SO等概念 这些概念都是为了更好地组织代码 提高代码的可读性和可维护性而设计的 RO Resource Object
  • 127-Linux_Redis

    文章目录 一 Redis的基本概念 1什么是redis 2redis的特性 1 内存存储 2 数据持久化 3 多种数据结构 4 原子性操作 5 发布 订阅模型 6 高可用性 7 高并发性 二 Redis的数据结构 1 字符串 string
  • 关于程序间通信的两点应用

    由于ios程序本身采用沙盒结构 比较封闭 各个app间是比较独立的 但是ios还提供了一些app间通信的接口 可以利用这些接口 做些东西 1 判断系统里是否安装了某个app 比如新浪微博应用注册了URL scheme为 weibo 我们可以
  • 计算机编码规则

    英文 中文 解释 使用场景 bit 比特 一个位就代表一个0或1 即二进制 数据传输时以bit为单位 byte 字节 一个字节代表8位bit 2的8次方位 数据储存都是以byte位单位 字符 一个字符占几个字节由下面的编码方式决定 一个字符
  • Ant design pro-项目探究(7)react的markdown编辑器

    前言 普通的input和textarea已满足大部分的文本记录 但想要让输入文本更加多样化 markdown编辑器可谓是yyds 但是vue版本的markdown编辑器众多 基于react版本的编辑器就相当少一些 以下是整合和探究react