不僅僅是web端,貌似很多地方,都有一定的富文本編輯器輪子,但是像我這樣針對不同用戶不同業(yè)務(wù)不同需求的,幾乎玩轉(zhuǎn)過所有能找到的富文本編輯器工具,基本上就沒個讓人省心的。
如果你要罵我自己去造個輪子,如果你我是這水平的人,咱就沒必要看下文啦,還用得著上@今日頭條 嗎?聽說這里的用戶都是月薪2萬。我說如果能自己造個比市面上輪子更好的富文本編輯器,恐怕都是月薪NN萬了,何必來這浪費時間呢?
目前將就使用的是Tinymce編輯器,但是在Vue里自己封裝了一個編輯器組件,以便所有表單編輯時候可以調(diào)用,奇怪的問題一大堆。
我的使用方法是根據(jù)網(wǎng)絡(luò)博客文章的方式引入,使用Tinymce5與Vue整合。、
參考文章為:
https://liubing.me/vue-tinymce-5.html
然而,如上方法,一模一樣的使用方式,在項目里,奇怪的問題就是,同一個URL,點擊第一次可以編輯內(nèi)容,返回,然后再點擊就出現(xiàn)空白了。搞了三天沒解決!
不喜歡Vue最大的一點就是,路由是否配置keep-alive,需要每次打開頁面更新數(shù)據(jù),沒有angular那種生命周期函數(shù)ngAfterViewInit,可以每次等到渲染節(jié)點渲染完成再自己去根據(jù)已經(jīng)渲染好的HTML節(jié)點獲取元素進行再次js操作。使用mounted函數(shù)進行編輯器初始化,可以,我切換路由再次訪問,不會再次運行,這就需要activated,但是不會讓組件重新渲染。關(guān)于這個Vue數(shù)據(jù)更新的,一種就是activated里,一種就是watch里監(jiān)聽$route。這種操作真是要命咯!
從N多項目來看,一般組件化復(fù)用組件都是在render函數(shù)進行渲染!還是angular一把梭,沒這么多蛋疼的生命周期渲染過程的操作。
除了Tinymce,還有quill/wangeditor/vueditor、ckeditor等很多富文本編輯器,但是太差了。編輯內(nèi)容操作十分有限!
目前只能看看那些付費的編輯器如何了,付費編輯器從Demo來看功能不少。
如果只是我自己使用,最適合的編輯器是Editor.js,結(jié)果直接輸出結(jié)構(gòu)化數(shù)據(jù)。這樣非常適合內(nèi)容放在不同的前端Android、IOS、小程序等任何地方方便展示,根據(jù)預(yù)設(shè)格式進行自定義標(biāo)準(zhǔn)化渲染,就不會出現(xiàn)編輯時期的排版和結(jié)果不一致的問題。
而給普通用戶使用的系統(tǒng),要做到不令用戶吐槽,傻瓜式使用,目前還真是無法滿足。
以前傳統(tǒng)web開發(fā),使用百度Ueditor編輯器,功能很多,但是目前很多內(nèi)容要放在手機上,或者響應(yīng)式頁面,這個編輯器也是太臃腫了。編輯結(jié)果的HTML夾雜了太多沒必要的標(biāo)簽,或者是不能很好的使用移動端。而且編輯器已經(jīng)多年不更新了,在Vue、angular、react不同地方的引入也是會出現(xiàn)不同的問題。