vue-codemirror 實現文字差異比對
因為 “基於百度腦圖的用例區別 diff” 由於主鍵 ID 變化導致比對不準,所以增加 Xmind 用例 Json 比對的功能
1、獲取兩個對比用例 Xmind JSON 內容,動態繫結 codemirror
2、輸出左右兩側差異的行號
3、差異的行號寫入下拉選擇,可以選擇行號,自動跳轉到有差異的行號處
4、當操作左側或者右側的豎向和橫向捲軸時候,另一側也同步滾動
前端元件調研:
①v-code-diff:優點:該元件可一次渲染所有差異(差異行有紅色和綠色的背景色),差異一目瞭然。缺點:文字量大時,例如 10000 行,頁面直接崩潰,所以該元件不適合資料量大的文字,最終被放棄
②vue-codemirror :優點:vue-codemirror 搭配 diff-match-patch 可進行大資料量的文字比對(幾百萬行也不在話下)。缺點:滾動渲染,不會一次渲染所有差異,而是滾動到哪裡,稍停片刻,或者緩慢滾動,才會看到差異(差異行有淡黃色背景色,差異文字有紅色和綠色波浪線)。所以,拖動捲軸過快時,可能差異還沒渲染出來,就已經滾動過去了,不能一目瞭然的知道有幾處差異。
3.解決方案:鑑於 vue-code-diff 對大資料量不不友好,直接 pass 掉。選用 vue-codemirror 搭配 diff-match-patch。為了改善 “滾動渲染,不會一次渲染所有差異,不能一目瞭然的知道有幾處差異” 的缺點,增加文字描述,示例如下:共 4 處差異,每處差異的開始行號為:2、589、2904、12328。這樣使用者可拖動捲軸到這些行,當滾動停止時,差異渲染出來,可看到這些行的具體差異。
核心程式碼:
相關文章
- 文字內容差異對比
- 文字差異對比工具 go-diffGo
- list對比差異
- Python內建庫實現文字比較並返回差異位置座標Python
- 中美慈善基金會差異對比
- java 如何從零實現一個資料庫差異對比工具?Java資料庫
- 【Python】Python 對比 C語言的差異PythonC語言
- Git比對檔案之間的差異Git
- openGauss資料與PostgreSQL的差異對比SQL
- Mac 上超好用的程式碼對比工具 beyond compare,對比json差異MacJSON
- git 本地對比2次commit直接的差異GitMIT
- 精準測試:基於 asm+javaparser 呼叫鏈差異化對比實踐ASMJava
- 前端與後端開發中技術差異的全面對比前端後端
- IDEA如何對比不同分支某個檔案的差異Idea
- ISO27001:2013和ISO27001:2005的差異對比
- 線上json差異比較工具--遞迴比較兩個json的節點和值的差異,並支援差異數預覽和逐個檢視差異JSON遞迴
- MappedByteBuffer VS FileChannel:從核心層面對比兩者的效能差異APP
- 通過 PHP 與 Python 程式碼對比淺析語法差異PHPPython
- 通過PHP與Python程式碼對比淺析語法差異PHPPython
- Python自動化:智慧對比Word文件,秒速鎖定差異!Python
- pandas比較兩個文件的差異
- Javers 比較兩個類的差異
- 微軟與開源乾貨對比篇_PHP和 ASP.NET在 Session實現和管理機制上差異微軟PHPASP.NETSession
- HHDESK文字對比功能
- 不吹不黑比對下React與Vue的差異與優劣ReactVue
- 【射擊遊戲】TPS對比FPS戰鬥設計差異與心得遊戲
- SAP Spartacus B2B OrgUnit 和 OrgUser 的路由對映差異比較路由
- 【原創】不同RTOS中POSIX介面的實現差異
- Standard ABAP Debugger 和 Classic ABAP Debugger 的實現差異
- 痞子衡嵌入式:對比MbedTLS演算法庫純軟體實現與i.MXRT上DCP,CAAM硬體加速器實現效能差異TLS演算法
- 是否應該升級到ChatGPT 4.0?深度對比ChatGPT 3.5與4.0的差異ChatGPT
- 差異巨大 6款通用工業級ARM處理器效能測試對比
- Vue(27)vue-codemirror實現線上程式碼編譯器Vue編譯
- 使用Visual Studio進行檔案差異比較
- 單例模式實現對比單例模式
- 集合差異比較演算法及效能測試演算法
- 在Linux中,如何比較兩個檔案差異?Linux
- java比較mysql兩個資料庫中差異JavaMySql資料庫