前言:富文本编辑器Rich Text Editor, 简称 RTE, 是一种可内嵌于浏览器,所见即所得的文本编辑器。


 

一、安装插件

react-draft-wysiwyg: 文本编辑器插件

draftjs-to-html:文本转换为html的插件

  1. yarn add react-draft-wysiwyg draftjs-to-html --save

二、富文本编辑器实现

  • pages->rich->index.js: 对应路由/admin/rich
  1. import React from 'react'
  2. import {Card, Button, Modal} from 'antd'
  3. import {Editor} from 'react-draft-wysiwyg'
  4. import draftjs from 'draftjs-to-html'
  5. import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css'
  6.  
  7. export default class RichText extends React.Component{
  8. state = {
  9. showRichText: false,
  10. editorContent: '',
  11. editorState: ''
  12. }
  13. handleClearContent = () => { //清空文本
  14. this.setState({
  15. editorState: ''
  16. })
  17. }
  18. handleGetText = () => { //获取文本内容
  19. this.setState({
  20. showRichText: true
  21. })
  22. }
  23. onEditorStateChange = (editorState) => { //编辑器的状态
  24. this.setState({
  25. editorState
  26. })
  27. }
  28. onEditorChange = (editorContent) => { //编辑器内容的状态
  29. this.setState({
  30. editorContent
  31. })
  32. }
  33. render(){
  34. const { editorState, editorContent } = this.state;
  35. return (
  36. <div>
  37. <Card>
  38. <Button type="primary" onClick={this.handleClearContent}>清空内容</Button>
  39. <Button type="primary" onClick={this.handleGetText} style={{marginLeft: 10}}>获取html文本</Button>
  40. </Card>
  41. <Card title="富文本编辑器">
  42. <Editor
  43. editorState={editorState}
  44. onEditorStateChange={this.onEditorStateChange}
  45. onContentStateChange={this.onEditorChange}
  46. toolbarClassName="toolbarClassName"
  47. wrapperClassName="wrapperClassName"
  48. editorClassName="editorClassName"
  49. onEditorStateChange={this.onEditorStateChange}
  50. />
  51. </Card>
  52. <Modal
  53. title="富文本"
  54. visible={this.state.showRichText}
  55. onCancel={() =>{
  56. this.setState({
  57. showRichText: false
  58. })
  59. }}
  60. footer={null}>
  61. {draftjs(this.state.editorContent)}
  62. </Modal>
  63. </div>
  64. )
  65. }
  66. }   

注:项目来自慕课网  

【重点突破】—— React实现富文本编辑器的更多相关文章

  1. 【React】富文本编辑器 清空文本内容 获取HTML

    富文本编辑器  React  传入 import React,{Component } from 'react'; import { Card, Button, Table, Form, Select ...

  2. 富文本编辑器TinyMCE的使用(React Vue)

    富文本编辑器TinyMCE的使用(React Vue) 一,需求与介绍 1.1,需求 编辑新闻等富有个性化的文本 1.2,介绍 TinyMCE是一款易用.且功能强大的所见即所得的富文本编辑器. Tin ...

  3. react富文本编辑器

    首先安装两个插件 yarn add react-draft-wysiwyg draftjs-to-html --save 使用的代码如下 import React from 'react' impor ...

  4. 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范

    昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...

  5. web开发实战--弹出式富文本编辑器的实现思路和踩过的坑

    前言: 和弟弟合作, 一起整了个智慧屋的小web站点, 里面包含了很多经典的智力和推理题. 其实该站点从技术层面来分析的话, 也算一个信息发布站点. 因此在该网站的后台运营中, 富文本的编辑器显得尤为 ...

  6. 更加简洁易用——wangEditor富文本编辑器新版本发布

    1. 前言 wangEditor富文本编辑器(www.wangEditor.com)从去年11月份发布,至今已经有将近10各月了.它就像一个襁褓中的小婴儿,在我的努力以及众多使用者的支持下不断摸索.成 ...

  7. 轻量级富文本编辑器wangEditor源码结构介绍

    1. 引言 wangEditor——一款轻量级html富文本编辑器(开源软件) 网站:http://www.wangeditor.com/ demo演示:http://www.wangeditor.c ...

  8. 重构wangEditor(web富文本编辑器),欢迎指正!

    提示:最新版wangEditor请参见:wangEditor.github.io 或者 https://github.com/wangfupeng1988/wangEditor 1. 前言 (下载源码 ...

  9. ASP.NET MVC 中使用 UEditor 富文本编辑器

    在上篇<使用ASP.NET MVC+Entity Framework快速搭建博客系统>中,已经基本上可以实现博客分类和博客文章的CURD.但是,文章编辑界面实在是…… 好吧,咱得搞专业点. ...

随机推荐

  1. @Transactional(rollbackFor=Exception.class)的作用

    在项目中,@Transactional(rollbackFor=Exception.class),如果类加了这个注解,那么这个类里面的方 法抛出异常,就会回滚,数据库里面的数据也会回滚. 这种设置是因 ...

  2. spring in action 学习笔记六:bean在不同情况下的默认id号或者将名字

    bean如果不知名id是什么它一般都有一个id或者讲名字. 第一种情况:组件扫描的情况:默认的id号或者bean的name是类名的首字母小写. 代码如下: package com.qls.beanli ...

  3. TortoiseSVN里checkout depth各选项的含义

    代表四种检出深度: 1.Fully recursive——全递归:检出完整的目录树,包含所有的文件或子目录.2.Immediate children,including folders——直接子节点, ...

  4. College student reflects on getting started in open source(二)

    My budding interest grew into a full-time obsession: creating artwork on my clunky, laggy laptop. 我萌 ...

  5. MVC学习__修改工程端口号

    有时候,我们会希望修改工程默认生成的端口号,方法如下:

  6. Oracle 整理

    高效分页 select * from ( select rownum r,a from yourtable order by name ) --之所以没有把<=20放在最外面,也就是我一直用的写 ...

  7. SpringMvc+Spring+Mybatis+Maven整合

    一.建立数据库表,使用generator自动生成相关代码: /* SQLyog Ultimate v11.24 (32 bit) MySQL - 5.1.62-community : Database ...

  8. python 操作数据库1--连接、执行sql语句

    #!/usr/bin/env python # -*- coding:utf-8 -*- # @Time : 2017/11/20 16:03 # @Author : lijunjiang # @Fi ...

  9. 如何让natTable表格支持自定义多个右键菜单

    在nebula中,官方默认提供了一个构造natTable的builder类,并且提供了一个debugInfo的默认右键菜单,但是当我们通过官方提供的builder去创建natTable,并且要添加多个 ...

  10. 修改 Lua支持中文变量名

    1. 找到 LuaPlus 工程下的 Lua Source Files 下的 llex.c:   2. 在该文件中找到下面所列函数: static int llex (LexState *ls, Se ...