React中使用UMEditor的方法示例
最近項目中需要使用富文本編輯器,參考了運營小姐姐日常使用平臺上的編輯器,最后考慮采用百度的UMEditor。因為輕量,功能和配置簡單,沒有很多定制化的功能,所以沒采用UEditor。不過我后續(xù)會出一篇文章將UEditor的二次開發(fā)。
umeditor的引入
組件設計
首先看一下組件大致的內容:
1.組件props:
2.組件關鍵的成員屬性:
3.簡單的render:
4.UMEditor的實例化
UMEditor源碼里需要改動的主要就是圖片的請求了,配置中的imgUrl我傳的是一個方法,這個方法中請求后臺并返回Promise<{url:string}>
源碼修改
源碼修改兩個文件
image.js中兩處更改
autoupload.js中一處修改
UMEditor的源碼存放在dll目錄下,打包時會被webpack拷貝道相應的目錄下,UMEDITOR_HOME_URL和這個目錄路徑保持一致
umeditor的依賴處理
文件合并
由于依賴文件過多,我們使用gulp合并一下
core文件夾下的依賴合并為core.min.js,其他plugin,ui,addapter也一樣合并為相應的min.js
原本由editor_api.js引入依賴的,現(xiàn)在我們自己寫個方法引入。
依賴加載
組件中定義需要引入的文件,這是一個二維數(shù)組,同級的文件按順序引入,不同級別的可以并發(fā)請求,比如:['/third-party/jquery.min.js', '/third-party/template.min.js']中的兩個文件同時請求,但是保證它們都load完再請求后面的文件
加載的時候使用SyncRequire方法
使用一步迭代器實現(xiàn)可控加載
loadDep負責文件加載,具體如下:
SyncRequire內部維護一個異步迭代器,迭代的對象是每一個文件的加載。最后使用for await進行異步迭代
如果是一個文件路徑數(shù)組,則說明這個數(shù)組中的文件可以同時使用loadDep加載,如果是一個文件路徑字符串,則說明這個文件加載完才可以加載后面的文件。loaders具體實現(xiàn)如下
好了,有了這個SyncRequire方法,就可以既同時又順序加載我們的外部js或者css文件了,最后可以在控制臺中驗證效果
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持我們。
上一篇:jstree中的checkbox默認選中和隱藏示例代碼
欄 目:JavaScript
下一篇:原生JS實現(xiàn)頂部導航欄顯示按鈕+搜索框功能
本文地址:http://mengdiqiu.com.cn/a1/JavaScript/9381.html
您可能感興趣的文章


閱讀排行
本欄相關
- 04-02javascript點線,點線的代碼
- 04-02javascript潛力,javascript強大嗎
- 04-02javascript替換字符串,js字符串的替換
- 04-02javascript移出,js 移入移出
- 04-02包含javascript舍的詞條
- 04-02javascript并行,深入理解并行編程 豆瓣
- 04-02javascript匿名,js匿名方法
- 04-02javascript警報,JavaScript警告
- 04-02javascript遮蓋,JavaScript遮蓋PC端頁面
- 04-02javascript前身,javascript的前身
隨機閱讀
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10C#中split用法實例總結
- 01-10delphi制作wav文件的方法
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 04-02jquery與jsp,用jquery
- 08-05織夢dedecms什么時候用欄目交叉功能?