一个开箱即用的React富文本编辑器 🚀固然也能够定制化啦👏css
github地址: github.com/wowlusitong…html
编辑器为适应不一样开发需求,提供两种使用方法node
re-editor是一个封装好的组件, 安装就能够使用, 它里面包含 @re-editor/core 和 @re-editor/toolbar-antd, 工具条默认使用antd风格,如要使用其余工具条请参考下面自定义说明git
$ npm install re-editor
复制代码
在js里面引入github
import 're-editor/lib/styles/index.css'
复制代码
也能够在css里面引入(须要css预处理支持)npm
@import 're-editor/lib/styles/index.css'
复制代码
属性 | 说明 | 类型 |
---|---|---|
value | 编辑器的值 | object |
onChange | 编辑器更改内容的回调 | (value: Value) => void |
placeholder | 占位文本 | string |
编辑器拆分为两个部分,内容编辑区域 和 工具条,下面介绍如何自定义工具条markdown
$ npm install @re-editor/core
复制代码
能够用任何方式建立编辑器工具条,须要将编辑器的实例传给工具条,可参考 re-editor 和 @re-editor/toolbar-antd的实现,详情查看API文档(这部分文档还没写完,会在一周内补全😂)antd
例如实现一个加粗功能:框架
import { command } from '@re-editor/core';
const Demo = (props) => {
function handleClick() {
command(props.editor)('bold')
}
return <div onClick={handleClick}>bold</div>
}
复制代码
slate或draft并非一个纯编辑器,它们更像是一个用于构建编辑器的框架,re-editor是基于slate开发,让你没必要关注构建编辑器
的过程。编辑器
样式分为两部分,node(粗体、h一、h2等)和工具栏,它们均可以经过css重写基础样式,工具栏也能够作到彻底重写 样式能够经过css自定义
使用增量更新,onChange回调的value是 immutable格式,能够使用immutable-js-diff等方法获取diff的内容进行增量更新
粗体
斜体
下划线
删除线
上标
下标
有序列表
无序列表
左对齐
右对齐
居中对齐
两端对齐
h1
h2
h3
h4
h5
h6
图片
表格
代码高亮
markdown
#
>
-
1.
其余功能持续增长中...