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 相关文章推荐
javascript中window.event事件用法详解
Dec 11 Javascript
用js调用迅雷下载代码的二种方法
Apr 15 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
Dec 31 Javascript
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
Jun 16 Javascript
原生js实现日期联动
Jan 12 Javascript
js实现内容显示并使用json传输数据
Mar 16 Javascript
jQuery实现无限往下滚动效果代码
Apr 16 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
May 25 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
Sep 19 jQuery
jQuery图片查看插件Magnify开发详解
Dec 25 jQuery
vue路由教程之静态路由
Sep 03 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
May 06 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
关于php mvc开发模式的感想
2011/06/28 PHP
PHP 匿名函数与注意事项详细介绍
2016/11/26 PHP
浅析JQuery获取和设置Select选项的常用方法总结
2013/07/04 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
jquery中one()方法的用法实例
2015/01/16 Javascript
基于Vue.js实现简单搜索框
2020/03/26 Javascript
图文详解Javascript中的上下文和作用域
2017/02/15 Javascript
原生js获取left值和top值的三种方法
2017/08/02 Javascript
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
2017/10/30 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
在vue中获取微信支付code及code被占用问题的解决方法
2019/04/16 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
python关键字and和or用法实例
2015/05/28 Python
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
解决python3中cv2读取中文路径的问题
2018/12/05 Python
python自带tkinter库实现棋盘覆盖图形界面
2019/07/17 Python
python tkinter GUI绘制,以及点击更新显示图片代码
2020/03/14 Python
基于python实现操作git过程代码解析
2020/07/27 Python
Python实现播放和录制声音的功能
2020/08/12 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
css3闪亮进度条效果实现思路及代码
2013/04/17 HTML / CSS
中专毕业个人的自荐信格式
2013/09/21 职场文书
建筑工程技术应届生求职信
2013/11/17 职场文书
安全事故检讨书
2014/01/18 职场文书
硕士生工作推荐信
2014/03/07 职场文书
新年主持词
2014/03/27 职场文书
百年校庆节目主持词
2014/03/27 职场文书
事业单位竞聘上岗实施方案
2014/03/28 职场文书
个人总结与自我评价
2014/09/18 职场文书
2015年先进个人自荐书
2015/03/24 职场文书
2015年妇委会工作总结
2015/05/22 职场文书
地震捐款简报
2015/07/21 职场文书