需求背景
有一个比较 json 的需求,希望对比高亮不同的值,并给出对应的key值一个波动范围,比较不同的值,如果超出波动范围则进一步高亮并在后面给出对应的变化率。效果上有点像下图 diffchecker 提供的样式内容上再定制化。

下面调研了几种方案,并简单介绍它们的优劣和不同。
- codemirror merge 插件
- monaco-editor
- json-editor
- jsdiff 自渲染
- jsdiff diff2html
codemirror
挺强大的一个编辑器内容,核心功能比较简单,但是提供了较多的api和插件实现功能。
效果图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dcnVELCK-1654054670445)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/69bb72d2089c493885a854ab2aca57ad~tplv-k3u1fbpfcp-zoom-in-crop-mark:1956:0:0:0.image?)]
需要搭配 diff-match-patch 这个 diff 包来使用。

本文探讨了在实现JSON对比时高亮不同值并显示波动范围的需求,介绍了CodeMirror、Monaco-Editor、json-editor等编辑器的优劣,并详细分析了jsdiff与diff2html的渲染方案。在满足特定波动范围要求的情况下,推荐使用jsdiff结合自定义渲染以控制样式。
最低0.47元/天 解锁文章
4267

被折叠的 条评论
为什么被折叠?



