原创 初探富文本之CRDT協同實例

初探富文本之CRDT協同實例 在前邊初探富文本之CRDT協同算法一文中我們探討了爲什麼需要協同、分佈式的最終一致性理論、偏序集與半格的概念、爲什麼需要有偏序關係、如何通過數據結構避免衝突、分佈式系統如何進行同步調度等等,這些屬於完成協同所需

原创 初探富文本之CRDT協同算法

初探富文本之CRDT協同算法 CRDT的英文全稱是Conflict-free Replicated Data Type,最初是由協同文本編輯和移動計算而發展的,現在還被用作在線聊天系統、音頻分發平臺等等。當前CRDT算法在富文本編輯器領域的

原创 初探富文本之OT協同實例

初探富文本之OT協同實例 在前邊初探富文本之OT協同算法一文中我們探討了爲什麼需要協同、爲什麼僅有原子化的操作並不能實現協同、爲什麼要有操作變換、如何進行操作變換、什麼時候能夠應用操作、服務端如何進行協同調度等等,這些屬於完成協同所需要了解

原创 初探富文本之OT協同算法

初探富文本之OT協同算法 OT的英文全稱是Operational Transformation,是一種處理協同編輯的算法。當前OT算法用的比較多的地方就是富文本編輯器領域了,常用於作爲實現文檔協同的底層算法,支持多個用戶同時編輯文檔,不會因

原创 初探富文本之編輯器引擎

初探富文本之編輯器引擎 在前文中我們介紹了富文本的基礎概念,以及富文本的基本發展歷程,那麼在本文中將會介紹當前主流開源的富文本編輯器引擎。當前使用最廣泛的富文本編輯器是L1的富文本編輯器,其能滿足絕大部份使用場景,由此也誕生了非常多優秀的開

原创 初探富文本之富文本概述

初探富文本之富文本概述 富文本編輯器通常指的是可以對文字、圖片等進行編輯的產品,具有所見即所得的能力。對於Input、Textarea之類標籤,他們是支持內容編輯的,但並不支持帶格式的文本或者是圖片的插入等功能,所以對於這類的需求就需要富文

原创 Hooks與普通函數的區別

Hooks與普通函數的區別 在這裏的Hooks具體指的是自定義Hooks,自定義的Hooks與我們定義的普通函數類似,都可以封裝邏輯,以實現邏輯的複用。Hooks實際上是一種特殊的函數,而由於Hooks的特殊實現,他們之間也存在着一定的區別

原创 Context與Reducer

Context與Reducer Context是React提供的一種跨組件的通信方案,useContext與useReducer是在React 16.8之後提供的Hooks API,我們可以通過useContext與useReducer來完

原创 MutationObserver對象

MutationObserver對象 MutationObserver (W3C DOM4)對象提供了監視對DOM樹所做更改的能力,其被設計爲舊的Mutation Events功能的替代品(該功能是DOM3 Events規範的一部分)。

原创 基於NoCode構建簡歷編輯器

基於NoCode構建簡歷編輯器 基於NoCode構建簡歷編輯器,要參加秋招了,因爲各種模版用起來細節上並不是很滿意,所以嘗試做個簡單的拖拽簡歷編輯器。 描述 Github | Resume DEMO 對於無代碼NoCode和低代碼LowCo

原创 基於slate構建文檔編輯器

基於slate構建文檔編輯器 slate.js是一個完全可定製的框架,用於構建富文本編輯器,在這裏我們使用slate.js構建專注於文檔編輯的富文本編輯器。 描述 Github | Editor DEMO 富文本編輯器是一種可內嵌於瀏覽器,

原创 競態問題與RxJs

競態問題與RxJs 競態問題通常指的是在多線程的編程中,輸入了相同的條件,但是會輸出不確定的結果的情況。雖然Js是單線程語言,但由於引入了異步編程,所以也會存在競態的問題,而使用RxJs通常就可以解決這個問題,其使得編寫異步或基於回調的代碼

原创 Mobx與Redux的異同

Mobx與Redux的異同 Mobx與Redux都是用來管理JavaScript應用的狀態的解決方案,用以提供在某個地方保存狀態、修改狀態和更新狀態,使我們的應用在狀態與組件上解耦,我們可以從一個地方獲得狀態,在另一個地方修改,在其他地方得

原创 初探webpack之編寫loader

初探webpack之編寫loader loader加載器是webpack的核心之一,其用於將不同類型的文件轉換爲webpack可識別的模塊,即用於把模塊原內容按照需求轉換成新內容,用以加載非js模塊,通過配合擴展插件,在webpack構建流

原创 手寫useState與useEffect

手寫useState與useEffect useState與useEffect是驅動React hooks運行的基礎,useState用於管理狀態,useEffect用以處理副作用,通過手寫簡單的useState與useEffect來理解其