React + BraftEditor 实现富文本编辑

Braft Editor 是一个基于 ReactDraft-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;


相关推荐
申阳19 分钟前
Day 7:05. 基于Nuxt开发博客项目-首页开发
前端·后端·程序员
Crystal32826 分钟前
App端用户每日弹出签到弹窗如何实现?(uniapp+Vue)
前端·vue.js
摸着石头过河的石头28 分钟前
Service Worker 深度解析:让你的 Web 应用离线也能飞
前端·javascript·性能优化
用户40993225021229 分钟前
Vue 3中watch侦听器的正确使用姿势你掌握了吗?深度监听、与watchEffect的差异及常见报错解析
前端·ai编程·trae
1024小神31 分钟前
Xcode 常用使用技巧说明,总有一个帮助你
前端
政采云技术1 小时前
音视频通用组件设计探索和应用
前端·音视频开发
Hilaku1 小时前
我用AI重构了一段500行的屎山代码,这是我的Prompt和思考过程
前端·javascript·架构
Cxiaomu1 小时前
React Native App 自动检测版本更新完整实现指南
javascript·react native·react.js
IT_陈寒2 小时前
Vite性能优化实战:5个被低估的配置让你的开发效率提升50%
前端·人工智能·后端
IT_陈寒2 小时前
Java性能调优的7个被低估的技巧:从代码到JVM全链路优化
前端·人工智能·后端