Appearance
BizDiffViewer 文本对比
行级文本对比(纯前端零依赖 LCS 算法):split 左右分栏(删除 + 新增 zip 成对)/ unified 单栏双模式,增删行语义色着色、标题栏 ±统计、ignore-whitespace 忽略空白差异。版本对比、配置变更审计、发布单 diff 预览的标准件;超大输入(>2000×2000 行)自动降级全删全增保证可用。
基础用法(split 分栏)
发布前配置 -5
发布后配置 +6
1-server.port=8080
1server.port=8081
2-server.timeout=30
2server.timeout=60
3-db.host=192.168.1.10
3db.host=192.168.1.20
4db.port=3306
4db.port=3306
5-db.pool.max=20
5db.pool.max=50
6-log.level=info
6db.pool.min=5
7+log.level=warn
unified 单栏 · 忽略空白
v1.0 -2
v1.1 +2
1-function greet(name) {
2- console.log('hello, ' + name)
1+function greet(name, greeting) {
2+ console.log(greeting + ', ' + name)
3 return true
4}
JSON 配置对比
当前配置 -3
待发布配置 +4
1{
1{
2 "app": "gateway",
2 "app": "gateway",
3- "replicas": 2,
3 "replicas": 4,
4- "timeout": 30,
4 "timeout": 60,
5 "features": {
5 "features": {
6 "cache": true,
6 "cache": true,
7- "retry": false
7 "retry": true,
8+ "circuit": true
8 }
9 }
9}
10}
忽略空白差异
原(2 空格) -0
新(4 空格) +0
1function calc(a, b) {
1function calc(a, b) {
2const sum = a + b
2const sum = a + b
3return sum
3return sum
4}
4}
ignore-whitespace:仅缩进变化不算 diff(格式化 / 编辑器空格风格差异场景)
字段级对照(table 模式)
变更前 +0~3-0
仓库名称
华东 1 号仓
→
华东 1 号冷链仓
修改温度上限(℃)
8
→
6
修改告警手机
13800000001
→
13800000002
修改发布确认
线上版本 -2
本次变更 +3
1-server.port=8080
1server.port=8081
2-db.pool.max=20
2db.pool.max=50
3+db.pool.min=5
3log.level=info
4log.level=info
+0-0不变 0
代码评审(unified)
HEAD~1 -4
工作区 +2
1-export const sum = (list) => {
2- let total = 0
3- for (const n of list) total += n
4- return total
1+export const sum = (list: number[]): number => {
2+ return list.reduce((total, n) => total + n, 0)
5}
Props
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| old-value | string | '' | 原文本 |
| new-value | string | '' | 新文本 |
| mode | 'split' | 'unified' | 'table' | 'split' | 对比视图:split 左右分栏 / unified 单栏 / table 对象字段级对照 |
| old-title | string | '原始内容' | 左栏标题 |
| new-title | string | '修改内容' | 右栏标题 |
| ignore-whitespace | boolean | false | 忽略行首尾空白差异 |
最大高度经 css 变量
--biz-diff-viewer-height(默认 480px)调整。
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
| — | — | 无 |
Slots
| 插槽名 | 说明 |
|---|---|
| — | 无插槽 |
Expose
| 属性/方法 | 说明 |
|---|---|
| rows | diff 行序列(BizDiffRow[],含类型与行号) |
| stats | { added, removed, unchanged } 统计 |
工具函数
diffLines(oldText, newText, ignoreWhitespace)/diffStats(rows)/toSplitRows(rows)一并从库导出,纯函数可单测或自定义渲染。