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 相关文章推荐
jCallout 轻松实现气泡提示功能
Sep 22 Javascript
jQuery实现鼠标滑过点击事件音效试听
Aug 31 Javascript
javascript获取wx.config内部字段解决微信分享
Mar 09 Javascript
ionic隐藏tabs的方法
Aug 29 Javascript
BootStrapTable服务器分页实例解析
Dec 20 Javascript
微信小程序 tabs选项卡效果的实现
Jan 05 Javascript
JavaScript自定义文本框光标
Mar 05 Javascript
JS沙箱模式实例分析
Sep 04 Javascript
基于JavaScript中字符串的match与replace方法(详解)
Dec 04 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
Jan 23 Javascript
vue--vuex详解
Apr 15 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
Jul 18 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 高手之路(一)
2006/10/09 PHP
php mysql数据库操作分页类
2008/06/04 PHP
关于IIS php调用com组件的权限问题
2012/01/11 PHP
详解PHP中的Traits
2015/07/29 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
PHP 中常量的知识整理
2017/04/14 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
详解阿里云视频直播PHP-SDK接入教程
2020/07/09 PHP
javascript 常用方法总结
2009/06/03 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
jQuery实现带延迟效果的滑动菜单代码
2015/09/02 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
2016/02/25 Javascript
微信小程序点击控件修改样式实例详解
2017/07/07 Javascript
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
微信小程序后端无法保持session的原因及解决办法问题
2020/03/20 Javascript
关于element的表单组件整理笔记
2021/02/05 Javascript
python 采集中文乱码问题的完美解决方法
2016/09/27 Python
理解Python中的绝对路径和相对路径
2017/08/30 Python
详解python中@的用法
2019/03/27 Python
python输出决策树图形的例子
2019/08/09 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
美国办公用品购物网站:Quill.com
2016/09/01 全球购物
初中生自我评价
2014/02/01 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书
会计专业自荐信范文
2019/05/22 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python