React中使用UMEditor的方法示例


Posted in Javascript onDecember 27, 2019

最近项目中需要使用富文本编辑器,参考了运营小姐姐日常使用平台上的编辑器,最后考虑采用百度的UMEditor。因为轻量,功能和配置简单,没有很多定制化的功能,所以没采用UEditor。不过我后续会出一篇文章将UEditor的二次开发。

umeditor的引入

组件设计

首先看一下组件大致的内容:

1.组件props:

React中使用UMEditor的方法示例

2.组件关键的成员属性:

React中使用UMEditor的方法示例

3.简单的render:

React中使用UMEditor的方法示例

4.UMEditor的实例化

React中使用UMEditor的方法示例

UMEditor源码里需要改动的主要就是图片的请求了,配置中的imgUrl我传的是一个方法,这个方法中请求后台并返回Promise<{url:string}>

源码修改

源码修改两个文件

image.js中两处更改

React中使用UMEditor的方法示例

React中使用UMEditor的方法示例

autoupload.js中一处修改

React中使用UMEditor的方法示例

UMEditor的源码存放在dll目录下,打包时会被webpack拷贝道相应的目录下,UMEDITOR_HOME_URL和这个目录路径保持一致

React中使用UMEditor的方法示例

umeditor的依赖处理

文件合并

由于依赖文件过多,我们使用gulp合并一下

React中使用UMEditor的方法示例

core文件夹下的依赖合并为core.min.js,其他plugin,ui,addapter也一样合并为相应的min.js

原本由editor_api.js引入依赖的,现在我们自己写个方法引入。

依赖加载

组件中定义需要引入的文件,这是一个二维数组,同级的文件按顺序引入,不同级别的可以并发请求,比如:['/third-party/jquery.min.js', '/third-party/template.min.js']中的两个文件同时请求,但是保证它们都load完再请求后面的文件

React中使用UMEditor的方法示例

加载的时候使用SyncRequire方法

React中使用UMEditor的方法示例

使用一步迭代器实现可控加载

React中使用UMEditor的方法示例

loadDep负责文件加载,具体如下:

React中使用UMEditor的方法示例

SyncRequire内部维护一个异步迭代器,迭代的对象是每一个文件的加载。最后使用for await进行异步迭代

React中使用UMEditor的方法示例

如果是一个文件路径数组,则说明这个数组中的文件可以同时使用loadDep加载,如果是一个文件路径字符串,则说明这个文件加载完才可以加载后面的文件。loaders具体实现如下

React中使用UMEditor的方法示例

好了,有了这个SyncRequire方法,就可以既同时又顺序加载我们的外部js或者css文件了,最后可以在控制台中验证效果

React中使用UMEditor的方法示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
picChange 图片切换特效的函数代码
May 06 Javascript
juqery 学习之三 选择器 子元素与表单
Nov 25 Javascript
js获取事件源及触发该事件的对象
Oct 24 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
Feb 11 Javascript
Jquery遍历checkbox获取选中项value值的方法
Feb 13 Javascript
jQuery的promise与deferred对象在异步回调中的作用
May 03 Javascript
window.onload绑定多个事件的两种解决方案
May 15 Javascript
JS实现简单易用的手机端浮动窗口显示效果
Sep 07 Javascript
jquery点赞功能实现代码 点个赞吧!
May 29 jQuery
React教程之Props验证的具体用法(Props Validation)
Sep 04 Javascript
对类Vue的MVVM前端库的实现代码
Sep 07 Javascript
vue组件之间通信方式实例总结【8种方式】
Feb 22 Javascript
node.js express捕获全局异常的三种方法实例分析
Dec 27 #Javascript
JavaScript中变量提升机制示例详解
Dec 27 #Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
Dec 26 #Javascript
Vue使用虚拟dom进行渲染view的方法
Dec 26 #Javascript
node.js Promise对象的使用方法实例分析
Dec 26 #Javascript
js回调函数仿360开机
Dec 26 #Javascript
js仿360开机效果
Dec 26 #Javascript
You might like
ajax实现无刷新分页(php)
2010/07/18 PHP
php中{}大括号是什么意思
2013/12/01 PHP
PHP获取表单所有复选框的值的方法
2014/08/28 PHP
在SAE上搭建最新wordpress的方法
2014/12/21 PHP
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
JavaScript 闭包在封装函数时的简单分析
2009/11/28 Javascript
js 编程笔记 无名函数
2011/06/28 Javascript
购物车选中得到价格实现示例
2014/01/26 Javascript
javascript常用的方法分享
2015/07/01 Javascript
jQuery实现的导航下拉菜单效果
2016/07/04 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
2019/02/28 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
wxPython事件驱动实例详解
2014/09/28 Python
python中map()与zip()操作方法
2016/02/27 Python
Python连接数据库学习之DB-API详解
2017/02/07 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
python的debug实用工具 pdb详解
2019/07/12 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
python文件编写好后如何实践
2020/07/07 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
基于css3 animate制作绚丽的动画效果
2015/11/24 HTML / CSS
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
描述一下JVM加载class文件的原理机制
2013/12/08 面试题
优秀共产党员先进事迹
2014/01/27 职场文书
农村婚庆司仪主持词
2014/03/15 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
信访维稳工作汇报
2014/10/27 职场文书
小学六一儿童节活动开幕词
2016/03/04 职场文书
仅用几行Python代码就能复制她的U盘文件?
2021/06/26 Python