React + BraftEditor 实现富文本编辑

Braft Editor 是一个基于 React 和 Draft-js 开发的富文本编辑器,提供了丰富的基础功能,如基本文本格式化、列表、链接、图片上传、视频插入等,并且还支持扩展。

  1. 首先,确保你已经在项目中安装了 Braft Editor 和它的依赖项,如果没有,可以运行以下命令进行安装:

    javascript 复制代码
    npm install braft-editor --save
  2. 实现代码如下

    备注:可以配置table的option,也可以配置工具栏

    javascript 复制代码
    import BraftEditor from 'braft-editor';
    import 'braft-editor/dist/index.css';
    import TableEditor from 'braft-extensions/dist/table';
    import 'braft-extensions/dist/table.css';
    
    const options = {
      defaultColumns: 2, // 默认列数
      defaultRows: 2, // 默认行数
      withDropdown: false, // 插入表格前是否弹出下拉菜单
      columnResizable: true, // 是否允许拖动调整列宽,默认false
    };
    // 启用表格扩展
    BraftEditor.use(TableEditor(options));
    
    
    const Editor = ({ onSuccess }, ref) => {
      const [editorState, setEditorState] = useState(BraftEditor.createEditorState(null));
      const handleChange = (newEditorState: any) => {
        setEditorState(newEditorState);
      };
    
      return (
       
            <BraftEditor
              value={editorState}
              onChange={handleChange}
              controls={[
                'blockquote',
                'bold',
                'code',
                'clear',
                'emoji',
                'font-family',
                'font-size',
                'fullscreen',
                'headings',
                'italic',
                'letter-spacing',
                'line-height',
                'link',
                'list-ol',
                'list-ul',
                'redo',
                'remove-styles',
                'separator',
                'strike-through',
                'text-align',
                'text-color',
                'text-indent',
                'underline',
                'undo',
                'table', //可以自定义显示工具栏内容
              ]}
            />
        
      );
    };
    
    export default Editor;


相关推荐
下家13 分钟前
为了脱离前端鄙视链,于是自己写个框架 - React 党看完沉默了
前端·前端框架
zhiyouTech20 分钟前
从“被看见“到“被信任“:关于信源评级机制的一点观察
大数据·前端·人工智能
Hashan21 分钟前
Vibe Coding 下前后端怎么对接接口?后端不给力的兜底方案
前端·后端·vibecoding
你挚爱的强哥1 小时前
【sgKeyboard】自定义组件:虚拟键盘
前端·javascript·计算机外设
锅里游的鱼吖1 小时前
echarts自定义折线图
前端·javascript·数据库
hunteritself2 小时前
卷卷卷!GPT-6 Sol、Luna 正式发布,OpenAI 开始卷价格了
大数据·前端·人工智能·深度学习·transformer
何何____2 小时前
Vue 全局事件总线详解
前端·javascript·vue.js
涉密IT资质笔记3 小时前
涉密人员脱密期管理规范:期限分级模型、就业限制边界与违规认定标准
java·服务器·前端·网络·数据库
u0111026753 小时前
工具页案例图如何编写 alt让图片说明与处理场景对应
java·前端·javascript·图像处理·人工智能·算法·ai作画
事圆则缓3 小时前
Flutter 状态管理框架对比(五):GetX 的响应式、依赖注册与生命周期
前端·javascript·flutter