React中使用UMEditor的方法示例
最近項(xiàng)目中需要使用富文本編輯器,參考了運(yùn)營(yíng)小姐姐日常使用平臺(tái)上的編輯器,最后考慮采用百度的UMEditor。因?yàn)檩p量,功能和配置簡(jiǎn)單,沒(méi)有很多定制化的功能,所以沒(méi)采用UEditor。不過(guò)我后續(xù)會(huì)出一篇文章將UEditor的二次開(kāi)發(fā)。
umeditor的引入
組件設(shè)計(jì)
首先看一下組件大致的內(nèi)容:
1.組件props:
2.組件關(guān)鍵的成員屬性:
3.簡(jiǎn)單的render:
4.UMEditor的實(shí)例化
UMEditor源碼里需要改動(dòng)的主要就是圖片的請(qǐng)求了,配置中的imgUrl我傳的是一個(gè)方法,這個(gè)方法中請(qǐng)求后臺(tái)并返回Promise<{url:string}>
源碼修改
源碼修改兩個(gè)文件
image.js中兩處更改
autoupload.js中一處修改
UMEditor的源碼存放在dll目錄下,打包時(shí)會(huì)被webpack拷貝道相應(yīng)的目錄下,UMEDITOR_HOME_URL和這個(gè)目錄路徑保持一致
umeditor的依賴(lài)處理
文件合并
由于依賴(lài)文件過(guò)多,我們使用gulp合并一下
core文件夾下的依賴(lài)合并為core.min.js,其他plugin,ui,addapter也一樣合并為相應(yīng)的min.js
原本由editor_api.js引入依賴(lài)的,現(xiàn)在我們自己寫(xiě)個(gè)方法引入。
依賴(lài)加載
組件中定義需要引入的文件,這是一個(gè)二維數(shù)組,同級(jí)的文件按順序引入,不同級(jí)別的可以并發(fā)請(qǐng)求,比如:['/third-party/jquery.min.js', '/third-party/template.min.js']中的兩個(gè)文件同時(shí)請(qǐng)求,但是保證它們都load完再請(qǐng)求后面的文件
加載的時(shí)候使用SyncRequire方法
使用一步迭代器實(shí)現(xiàn)可控加載
loadDep負(fù)責(zé)文件加載,具體如下:
SyncRequire內(nèi)部維護(hù)一個(gè)異步迭代器,迭代的對(duì)象是每一個(gè)文件的加載。最后使用for await進(jìn)行異步迭代
如果是一個(gè)文件路徑數(shù)組,則說(shuō)明這個(gè)數(shù)組中的文件可以同時(shí)使用loadDep加載,如果是一個(gè)文件路徑字符串,則說(shuō)明這個(gè)文件加載完才可以加載后面的文件。loaders具體實(shí)現(xiàn)如下
好了,有了這個(gè)SyncRequire方法,就可以既同時(shí)又順序加載我們的外部js或者css文件了,最后可以在控制臺(tái)中驗(yàn)證效果
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Remix 后臺(tái)桌面開(kāi)發(fā)electron-remix-antd-admin
這篇文章主要為大家介紹了Remix 后臺(tái)桌面開(kāi)發(fā)electron-remix-antd-admin的過(guò)程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04ahooks正式發(fā)布React?Hooks工具庫(kù)
這篇文章主要為大家介紹了ahooks正式發(fā)布值得擁有的React?Hooks工具庫(kù)使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07React如何使用refresh_token實(shí)現(xiàn)無(wú)感刷新頁(yè)面
本文主要介紹了React如何使用refresh_token實(shí)現(xiàn)無(wú)感刷新頁(yè)面,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04作為老司機(jī)使用 React 總結(jié)的 11 個(gè)經(jīng)驗(yàn)教訓(xùn)
這篇文章主要介紹了作為老司機(jī)使用 React 總結(jié)的 11 個(gè)經(jīng)驗(yàn)教訓(xùn),需要的朋友可以參考下2017-04-04用React Native制作一個(gè)簡(jiǎn)單的游戲引擎
今天給大家分享的是使用React Native制作一個(gè)簡(jiǎn)單的游戲,這個(gè)游戲可以跨平臺(tái)操作,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)React Native游戲相關(guān)知識(shí)感興趣的朋友一起看看吧2021-05-05Create?react?app修改webapck配置導(dǎo)入文件alias
這篇文章主要為大家介紹了Create?react?app修改webapck配置導(dǎo)入文件alias,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12