前言
本文将介绍笔者在React的项目中使用百度的富文本编辑器Ueditor的过程。注意本文不提供一条龙式的使用方法,只是将使用过程中的一些实现思路进行总结,供以参考。react项目中导入ueditor,会存在各种不正交的问题,需要注意。
引入
首先在ueditor官网下载最新安装包,然后在项目入口的html中导入(导入方式不一,可以采用import的方式,需要自行度娘。但是无论哪种引入方式,只要想自定义功能,不正交问题就难以避免QAQ)。不管三七二十一先跑起来再说。。
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>ueditor demo</title>
</head>
<body>
<!-- 配置文件 -->
<script type="text/javascript" src="path/ueditor.config.js"></script>
<!-- 编辑器源码文件 -->
<script type="text/javascript" src="path/ueditor.all.js"></script>
······
</body>
</html>
在React项目中使用ueditor要注意
- 导入的路径,笔者使用的是项目经webpack打包之后的相对路径。
- 导入顺序,配置文件要先于源码。
- 笔者这种引入方式存在缓存问题,所以修改ueditor.all.js后需要及时清理缓存,测试新的代码。
封装
/**
* 封装UEditor
*/
import React from 'react';
import './index.less';
class UEditor extends React.Component {
constructor(props) {
super(props);
this.editor = {};
this.id = '';
}
······
componentDidMount() {
let UE = window.UE;
let id = this.id;
if (id) {
try {
/* 加载之前先执行删除操作,否则如果存在页面切换,
再切回带编辑器页面重新加载时不刷新无法渲染出编辑器 */
UE.delEditor(id);