時隔五年, Quill 2.0 終于發(fā)布!重回富文本巔峰!
Quill 2.0 來啦!
自最初的 1.0 版本發(fā)布以來,Quill 見證了來自快速發(fā)展的初創(chuàng)公司、知名品牌和老牌財富 500 強公司的眾多成功案例,這些公司已將 Quill 納入其面向用戶的產(chǎn)品的一些最重要和核心的部分
Quill 用戶數(shù)很多,所以發(fā)新版本的時候,無縫銜接很重要,在提高了 Quill 功能的同時,也要讓開發(fā)人員的使用負(fù)擔(dān)降到最低~
隨著 Quill 2.0 的正式發(fā)布,GitHub 存儲庫已從上次發(fā)布 Quill 1.3.7 時的 23k star 增加到超過 41k star
圖片
接下來講解一下,Quill 2.0 做了哪些更新~
TypeScript的支持
Quill的源代碼已經(jīng)完全遷移到TypeScript,從中我們獲得了早期錯誤檢測、改進的可維護性以及更好的工具支持等諸多優(yōu)勢。這使得我們的代碼庫更為強大,也為Quill和我們的開發(fā)者社區(qū)帶來了更多好處。
在此之前,開發(fā)者需要單獨安裝@types/quill這個包,才能獲取到TypeScript的定義。然而,這種方式有時并不夠準(zhǔn)確,甚至可能與Quill的實際類型不符合,因為這個包是由我們更廣泛的社區(qū)維護的,因此與核心Quill包的更新也不一定同步。
但是,有了Quill 2.0,這些麻煩和出錯的機會都將成為過去。開發(fā)者現(xiàn)在可以直接從源頭獲取類型信息。要進行升級,只需從項目中移除@types/quill包,TypeScript將自動從Quill中選擇相應(yīng)的聲明。
圖片
表格的支持
2.0 從功能上來說,我覺得最大的變化就是支持表格的操作
圖片
性能提升
Quill 2.0 做了許多性能優(yōu)化工作,其中最為重要的是提升了對大型內(nèi)容的渲染速度
- 這些優(yōu)化包括增加了 insertBefore 函數(shù),并且盡可能地使用 insertBefore 來提高 setContents 函數(shù)的性能
- 通過對 getRange 函數(shù)進行優(yōu)化,提升了同時渲染多個 Quill 實例的性能,經(jīng)過優(yōu)化后,即使在同一個頁面上同時渲染了4000個 Quill 實例,其渲染性能也提升了近10倍
- 優(yōu)化了 Quill 實例的初始化邏輯,當(dāng)內(nèi)容為空時,無需執(zhí)行 setContents 函數(shù)
在渲染4000個 Quill 實例的情況下,經(jīng)過優(yōu)化前后加載時間的對比如下:
圖片
注冊多個 Quill 用例
隨著Quill變得越來越流行并被廣泛使用,我們開始經(jīng)常看到各種用例,有時一個頁面上甚至?xí)瑫r出現(xiàn)多個實例。
比如說,在一個博客平臺上,Quill可能被用來為博客帖子提供一個全功能的編輯界面,包括編輯標(biāo)題、插入圖片和代碼塊;而在同一個頁面上,Quill也可能被用于評論區(qū),提供基本的文本格式化功能,如加粗、斜體和插入鏈接。
Quill 2.0引入的新注冊表(registry)功能支持了這種場景,使得同一個頁面上可以存在多個配置各異的編輯器實例,而且它們之間不會互相沖突。欲了解更多關(guān)于注冊表的信息,請參閱文檔
文檔:https://slab.com/blog/announcing-quill-2-0/