在React框架中使用Braft Editor集成Table表格的详细教程

article/2025/7/19 5:39:00

简介:Braft Editor是一款基于draft-js开发的React富文本编辑器,支持多媒体、自定义样式和扩展功能。其表格扩展模块允许用户插入、调整表格结构,适合需要数据展示的场景(如CMS系统、报表工具)。

1.安装依赖

yarn add braft-editor
yarn add braft-utils
yarn add braft-extensions

 或者

# 安装编辑器核心
npm install braft-editor --save
# 安装表格扩展
npm install braft-extensions --save
# 安装插件工具
npm install braft-utils --save

 安装好后版本号

    "braft-editor": "^2.3.9","braft-extensions": "^0.1.1","braft-utils": "^3.0.13",

2.安装详细文档教程
安装和使用 · 语雀安装使用npm或者yarn来将本编辑器加入到你的项目中...https://www.yuque.com/braft-editor/be/lzwpnr3.完整示例代码

import React from 'react';
import {message} from 'antd';
// 引入编辑器组件
import BraftEditor from 'braft-editor'
import { ContentUtils } from 'braft-utils'
import 'braft-editor/dist/index.css';// 引入编辑器样式
import 'braft-editor/dist/output.css';// 预览样式(可选)
import Table from 'braft-extensions/dist/table';
import 'braft-extensions/dist/table.css'; // 引入表格样式export default class EditorDemo extends React.Component {constructor(props) {super(props);this.state = {editorState: BraftEditor.createEditorState(props.dataSource || ''),controls: ['table', //表格工具'font-size', //文字字号选择器'font-family', //文字字体选择器'line-height', //行高'letter-spacing', //字间距'text-color', //文字颜色'bold', //设置文字加粗'italic', //设置文字斜体'underline', //设置文字下划线'strike-through', //设置文字删除线'superscript', //设置文字为上标'subscript', //设置文字为下标'remove-styles', //清除文字样式'emoji', //Emoji表情选择器'text-align', //文字对齐方式工具,可通过textAligns属性来指定可以使用哪些对齐方式'text-indent', //text-indent	段落缩进工具,最多可缩进6级'link', //link	链接插入工具'headings', //段落类型(标题1-6、常规)'list-ul', //无序列表'list-ol', //有序列表'blockquote', //引用段落'code', //代码块'hr', //水平线工具'media', //media多媒体插入工具'clear', //内容清除工具'undo', //撤销操作'redo', //重做操作'separator', //分割线,连续的多个separator将只显示为1个],tableOptions: {defaultRows: 2,      // 默认行数defaultColumns: 3,   // 默认列数withDropdown: true,  // 显示行列选择下拉菜单columnResizable: true, // 允许拖动调整列宽exportAttrString: 'border="1" style="border-collapse: collapse"', // 输出表格边框}};}componentDidMount() {const {tableOptions}= this.state;BraftEditor.use(Table(tableOptions));}insertText(str) {const newEditorState = ContentUtils.insertHTML(this.state.editorState,str,'paste-html'  // 指定插入模式(避免格式冲突))this.setState({ editorState: newEditorState })}//获取ueditor内容getContent() {const {editorState} = this.state;const htmlContent = editorState.toHTML()console.log(htmlContent, '============', this.state.editorState);return htmlContent;}handleEditorChange = (content, editor) => {this.setState({editorState: content});};render() {const {dataSource} = this.props;const {editorState,controls} = this.state;return (<div className="my-braeditor"><BraftEditorplaceholder="请输入内容/从wps复制过来"controls={controls}value={editorState}onChange={this.handleEditorChange}onSave={this.getContent}/></div>);}
}

4.运行效果展示


http://www.hkcw.cn/article/sFMiHefHQF.shtml

相关文章

经营分析会,财务该怎么做?

目录 一、业绩洞察&#xff1a;从「现象描述」到「因果分析」 1.分层拆解 2.关联验证 3.根因追溯 二、预算管理&#xff1a;从「刚性控制」到「动态平衡」 1.分类管控 2.滚动校准 3.价值评估 三、客户与市场&#xff1a;从「交易记录」到「价值评估」 1.价值分层 2.…

yum安装nginx后无法通过服务方式启动

背景 在linux系统下&#xff0c;通过yum方式安装nginx后 通过nginx命令 nginx 可以启动nginx 但是作为测试或者生产服务器&#xff0c;我们需要配置开机自启动&#xff0c;这时候需要用服务方式启动 yum安装后的nginx 已经默认生成了服务启动方式的 nginx.service文件 按…

kuboard自带ETCD存储满了处理方案

一、前言 当运行 ETCD 日志报 Erro: mvcc database space exceeded 时&#xff0c;说明 ETCD 存储不足了&#xff08;默认 ETCD 存储是 2G&#xff09;&#xff0c;配额会触发告警&#xff0c;然后 Etcd 系统将进入操作受限的维护模式。 通过下面命令可以查看 ETCD 存储使用情…

『uniapp』添加桌面长按快捷操作 shortcuts(详细图文注释)

目录 手机环境适配说明安卓效果图代码 iOS(暂未实测,没有水果开发者)总结 欢迎关注 『uniapp』 专栏&#xff0c;持续更新中 欢迎关注 『uniapp』 专栏&#xff0c;持续更新中 手机环境适配说明 个别手机系统可能需要进行特别的权限设置,否则会无法使用 桌面快捷方式: 已知的有…

【目标检测】【ICCV 2021】条件式DETR实现快速训练收敛

Conditional DETR for Fast Training Convergence 条件式DETR实现快速训练收敛 代码链接 论文链接 摘要 最近提出的DETR方法将Transformer编码器-解码器架构应用于目标检测领域&#xff0c;并取得了显著性能。本文针对其训练收敛速度慢这一关键问题&#xff0c;提出了一种条…

Java线程:线程池详解(ThreadPoolExecutor构造器七个参数、线程池处理Runnable/Callable任务)

认识线程池 什么是线程池&#xff1f; 线程池就是一个可以复用线程的技术 不使用线程池的问题 用户每发起一个请求&#xff0c;后台就需要创建一个新线程来处理&#xff0c;下次新任务来了肯定又要创建新线程处理的&#xff0c;而创建新线程的开销是很大的&#xff0c;并且请求…

华为OD机试真题——开放日活动/取出尽量少的球(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

2025 A卷 200分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 本文收录于专栏:《2025华为OD真题目录+全流程解析/备考攻略/经验分享》 华为OD机试真题《开放…

day14 leetcode-hot100-25(链表4)

141. 环形链表 - 力扣&#xff08;LeetCode&#xff09; 1.哈希集合 思路 将节点一个一个加入HashSet&#xff0c;并用contains判断是否存在之前有存储过的节点&#xff0c;如果有便是环&#xff0c;如果没有便不是环。 具体代码 /*** Definition for singly-linked list.*…

低碳理念在道路工程中的应用-预制路面

一、引子 在上一篇文章里&#xff0c;给大家介绍了预制基层的应用&#xff0c;有人提出&#xff0c;既然基层能够预制&#xff0c;那么&#xff0c;道路面层能不能预制呢&#xff0c;有没有相关的研究成果和应用实例呢&#xff1f;答案是肯定的&#xff0c;在本篇文章中&#x…

React---day5

4、React的组件化 组件的分类&#xff1a; 根据组件的定义方式&#xff0c;可以分为&#xff1a;函数组件(Functional Component )和类组件(Class Component)&#xff1b;根据组件内部是否有状态需要维护&#xff0c;可以分成&#xff1a;无状态组件(Stateless Component )和…

Muplayer——轻量级在线JavaScript 音乐播放器

简单的 JavaScript 音乐播放器 GitHub 地址&#xff1a;https://github.com/Wcowin/Muplayer 在线地址&#xff1a;https://wcowin.work/Muplayer/ 本项目是一个基于原生 JavaScript、HTML 和 CSS 实现的响应式音乐播放器&#xff0c;支持本地音乐添加、播放列表管理、搜索、…

毫秒断电,安全守护|维安WPB系列主动型熔断器重磅登场!

1 主动型熔断器 新能源时代的“主动保护”趋势 随着新能源汽车行业的高速发展&#xff0c;其相关安全事故也层出不穷。为此&#xff0c;工信部于2025 年3月 28 日组织制定了强制性国家标准《电动汽车用动力蓄电池安全要求》&#xff08;GB38031-2025&#xff09;&#xff0c…

Java—— 多线程 第二期

等待唤醒机制(生产者和消费者) 说明 之前的多线程是谁抢到CPU的执行权谁执行&#xff0c;而等待唤醒机制作为一种经典的多线程协作模式&#xff0c;可以实现线程的交替执行。 成员 实现等待唤醒机制需要三个成员&#xff1a;生产者、消费者、标志位 可以分别看作厨师、吃货、…

2025年最新《Python程序设计》题库(含答案)

判断题填空题选择题程序题 点击文末名片可以下载python工具和完整题库&#xff01; 第 1 章 基础知识 &#xff08;部分展示&#xff09; 1、 Python 是一种跨平台、开源、免费的高级动态编程语言。 2、 Python 3.x 完全兼容 Python 2.x。 3、 Python 3.x 和 Python 2.x 唯…

【AI非常道】二零二五年五月,AI非常道

经常在社区看到一些非常有启发或者有收获的话语&#xff0c;但是&#xff0c;往往看过就成为过眼云烟&#xff0c;有时再想去找又找不到。索性&#xff0c;今年开始&#xff0c;看到好的言语&#xff0c;就记录下来&#xff0c;一月一发布&#xff0c;亦供大家参考。 前面的记…

Linux入门(十一)进程管理

Linux 中每个执行的程序都称为一个进程&#xff0c;每个进程都分配一个ID号&#xff08;PID&#xff09; 每个进程都可能以两种方式存在&#xff0c;前台&#xff08;屏幕上可以操作的&#xff09;和后台&#xff08;屏幕上无法看到的&#xff09;&#xff0c;一般系统的服务都…

晨控CK-UR12与西门子PLC配置Modbus TCP通讯连接操作手册

晨控CK-UR12与西门子PLC配置Modbus TCP通讯连接操作手册 晨控CK-UR12系列作为晨控智能工业级别RFID读写器,支持大部分工业协议如RS232、RS485、以太网。支持工业协议Modbus RTU、Modbus TCP、Profinet、EtherNet/lP、EtherCat以及自由协议TCP/IP等。 本期主题&#xff1a;围绕…

Python使用

Python学习&#xff0c;从安装&#xff0c;到简单应用 前言 Python作为胶水语言在web开发&#xff0c;数据分析&#xff0c;网络爬虫等方向有着广泛的应用 一、Python入门 相关基础语法直接使用相关测试代码 Python编译器版本使用3以后&#xff0c;安装参考其他教程&#xf…

高德地图应用OceanBase单元化构建下一代在线地图服务

IEEE International Conference on Data Engineering (ICDE) 是数据库和数据工程领域的顶级学术会议之一&#xff08;与SIGMOD、VLDB并成为数据库三大顶会&#xff09;&#xff0c;自1984年首次举办以来&#xff0c;每年举办一次。ICDE涵盖广泛的主题&#xff0c;包括数据库系统…

软考-系统架构设计师-第十九章 嵌入式系统架构设计理论与实践

嵌入式系统架构设计理论与实践 19.1 嵌入式系统发展历程19.2 嵌入式系统硬件19.3 嵌入式系统软件19.4 嵌入式系统软件架构设计方法19.5 嵌入式系统软件架构实践 19.1 嵌入式系统发展历程 发展历程硬件软件主要特点单片微型计算机&#xff08;SCM&#xff09;单片机无操作系统 …