12
12
13
13
旧版本:
14
14
15
- * 0.x 版本, 最新版本 0.3.12 (传统版本,基于 [ vue-code-diff] ( https://github.com/ddchef/vue-code-diff ) 进行改进,目前不再进行维护,我们会在
15
+ - 0.x 版本, 最新版本 0.3.12 (传统版本,基于 [ vue-code-diff] ( https://github.com/ddchef/vue-code-diff ) 进行改进,目前不再进行维护,我们会在
16
16
1.x 版本尽量对齐 0.x 版本功能,尽量降低迁移成本)
17
17
18
18
本项目参考了以下项目,在此对原作者表示感谢!
19
19
20
- * [ vue-diff] ( https://github.com/hoiheart/vue-diff )
21
- * [ vue-code-diff] ( https://github.com/ddchef/vue-code-diff )
22
- * Github Code Diff
20
+ - [ vue-diff] ( https://github.com/hoiheart/vue-diff )
21
+ - [ vue-code-diff] ( https://github.com/ddchef/vue-code-diff )
22
+ - Github Code Diff
23
23
24
24
## 目录
25
25
@@ -61,12 +61,10 @@ pnpm add @vue/composition-api
61
61
#### 注册为全局组件
62
62
63
63
``` ts
64
- import { createApp } from ' vue'
65
- import CodeDiff from ' v-code-diff'
64
+ import { createApp } from " vue" ;
65
+ import CodeDiff from " v-code-diff" ;
66
66
67
- app
68
- .use (CodeDiff )
69
- .mount (' #app' )
67
+ app .use (CodeDiff ).mount (" #app" );
70
68
```
71
69
72
70
然后
90
88
#### 注册为全局组件
91
89
92
90
``` ts
93
- import Vue from ' vue'
94
- import CodeDiff from ' v-code-diff'
91
+ import Vue from " vue" ;
92
+ import CodeDiff from " v-code-diff" ;
95
93
96
- Vue .use (CodeDiff )
94
+ Vue .use (CodeDiff );
97
95
```
98
96
99
97
#### 单独引入
@@ -103,45 +101,47 @@ Vue.use(CodeDiff)
103
101
## Demo
104
102
105
103
| | npm | cdn |
106
- | -------- | ----- | -------------------------------------------------------------------------------- |
104
+ | ------ | --- | ------------------------------------------------------------------------------ |
107
105
| vue2 | | [ vue2-cdn] ( https://stackblitz.com/edit/v-code-diff-vue2-cdn?file=index.html ) |
108
106
| vue2.7 | | [ vue27-cdn] ( https://stackblitz.com/edit/v-code-diff-vue27-cdn?file=index.html ) |
109
107
| vue3 | | [ vue3-cdn] ( https://stackblitz.com/edit/v-code-diff-vue3-cdn?file=index.html ) |
110
108
111
109
## 组件属性
112
110
113
- | 参数 | 说明 | 类型 | 可选值 | 默认值 |
114
- | ----------------| --------------------------------------------------------------------------------------------------------------------| ---------| ---------------------------| --------------|
115
- | language | 代码语言,如` typescript ` ,默认纯文本。 [ 查看全部支持语言] ( https://github.com/highlightjs/highlight.js/blob/main/SUPPORTED_LANGUAGES.md ) | string | - | plaintext |
116
- | oldString | 旧的字符串 | string | - | - |
117
- | newString | 新的字符串 | string | - | - |
118
- | context | 不同地方上下间隔多少行不隐藏 | number | - | 10 |
119
- | outputFormat | 展示方式 | string | line-by-line,side-by-side | line-by-line |
120
- | diffStyle | 差异风格, 单词级差异或字母级差异 | string | word, char | word |
121
- | trim | 移除字符串前后空白字符 | boolean | - | false |
122
- | noDiffLineFeed | 不 diff windows 换行符(CRLF)与 linux 换行符(LF) | boolean | - | false |
123
- | maxHeight | 组件最大高度,例如 300px | number | - | undefined |
124
- | filename | 文件名 | string | - | undefined |
111
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
112
+ | -------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------- | -------------------------- | ------------ |
113
+ | language | 代码语言,如` typescript ` ,默认纯文本。 [ 查看全部支持语言] ( https://github.com/highlightjs/highlight.js/blob/main/SUPPORTED_LANGUAGES.md ) | string | - | plaintext |
114
+ | oldString | 旧的字符串 | string | - | - |
115
+ | newString | 新的字符串 | string | - | - |
116
+ | context | 不同地方上下间隔多少行不隐藏 | number | - | 10 |
117
+ | outputFormat | 展示方式 | string | line-by-line,side-by-side | line-by-line |
118
+ | diffStyle | 差异风格, 单词级差异或字母级差异 | string | word, char | word |
119
+ | trim | 移除字符串前后空白字符 | boolean | - | false |
120
+ | noDiffLineFeed | 不 diff windows 换行符(CRLF)与 linux 换行符(LF) | boolean | - | false |
121
+ | maxHeight | 组件最大高度,例如 300px | number | - | undefined |
122
+ | filename | 文件名 | string | - | undefined |
123
+ | newFilename | 新文件文件名 | string | - | undefined |
124
+ | theme | 用于切换日间模式/夜间模式 | ThemeType | light , dark | 'light' |
125
125
126
126
## 组件事件
127
- | Name | Description | Type |
128
- | ------| -------------| ---------------------------------------------------------------------------------|
129
- | diff | diff 完成后触发 | (result: {stat: { isChanged: boolean, addNum: number, delNum: number}}) => void |
130
127
128
+ | Name | Description | Type |
129
+ | ---- | --------------- | ------------------------------------------------------------------------------- |
130
+ | diff | diff 完成后触发 | (result: {stat: { isChanged: boolean, addNum: number, delNum: number}}) => void |
131
131
132
132
## 拓展高亮语言
133
133
134
134
为了减小打包后的体积,系统默认仅支持以下常用语言
135
135
136
- * plaintext
137
- * xml/html
138
- * javascript
139
- * json
140
- * yaml
141
- * python
142
- * java
143
- * bash
144
- * sql
136
+ - plaintext
137
+ - xml/html
138
+ - javascript
139
+ - json
140
+ - yaml
141
+ - python
142
+ - java
143
+ - bash
144
+ - sql
145
145
146
146
如果您需要的语言不在其中,可以手动引入相关的语言高亮模块
147
147
@@ -150,11 +150,11 @@ pnpm add highlight.js
150
150
```
151
151
152
152
``` typescript
153
- import CodeDiff from ' v-code-diff' ;
153
+ import CodeDiff from " v-code-diff" ;
154
154
// Extend C language
155
- import c from ' highlight.js/lib/languages/c' ;
155
+ import c from " highlight.js/lib/languages/c" ;
156
156
157
- CodeDiff .hljs .registerLanguage (' c ' , c );
157
+ CodeDiff .hljs .registerLanguage (" c " , c );
158
158
```
159
159
160
160
## 从 0.x 版本迁移
@@ -163,39 +163,43 @@ v-code-diff 的 1.x 版本相较于 0.x 版本,具有打包体积减小、性
163
163
164
164
重点:
165
165
166
- * 1.x 版本中,不再会自动识别语言并高亮,您需要手动指定语言类型,如 ` language="python" ` ,若不指定则默认为纯文本` plaintext `
166
+ - 1.x 版本中,不再会自动识别语言并高亮,您需要手动指定语言类型,如 ` language="python" ` ,若不指定则默认为纯文本` plaintext `
167
167
,不会进行高亮。
168
- * 1.x 版本中,由于渲染和高亮是同时进行,因此移除了组件事件
169
- * 1.x 版本中,以下组件属性(Prop)有变动
170
- * highlight - 移除
171
- * drawFileList - 移除
172
- * fileName - 更名为 filename
168
+ - 1.x 版本中,由于渲染和高亮是同时进行,因此移除了组件事件
169
+ - 1.x 版本中,以下组件属性(Prop)有变动
170
+ - highlight - 移除
171
+ - drawFileList - 移除
172
+ - fileName - 更名为 filename
173
+ - newFilename - 新增
174
+ - theme - 新增
173
175
174
176
以下是两个版本具体的差异点,您可以参照阅读完成迁移。
175
177
176
178
### 组件事件对比
177
179
178
180
1.x 版本中,由于渲染与高亮是同时进行,因此不再提供组件事件
179
181
180
- | 事件名称 | 说明 |
181
- | --------------- | ------|
182
+ | 事件名称 | 说明 |
183
+ | ------------- | -- ------ |
182
184
| before-render | 不再提供 |
183
185
| after-render | 不再提供 |
184
186
185
187
### 组件属性对比
186
188
187
- | 参数 | 含义 | 变更情况 |
188
- | ------------------------| -------------------| --------------------|
189
- | highlight | 控制是否高亮代码 | 1.x 版本移除 |
190
- | language | 代码语言 | 无 |
191
- | old-string | 旧的字符串 | 无 |
192
- | new-string | 新的字符串 | 无 |
193
- | context | 不同地方上下间隔多少行不隐藏 | 无 |
194
- | output-format | 展示方式 | 无 |
195
- | diff-style | 差异风格, 单词级差异或字母级差异 | 无 |
196
- | drawFileList | 展示对比文件列表 | 1.x 版本移除 |
197
- | renderNothingWhenEmpty | 当无对比时不渲染 | 1.x 版本移除 |
198
- | fileName | 文件名 | 1.x 版本更名为 filename |
199
- | isShowNoChange | 当无对比时展示源代码 | 1.x 变为默认情况,故移除 |
200
- | trim | 移除字符串前后空白字符 | 无 |
201
- | noDiffLineFeed | 忽视不同系统换行符差异 | 无 |
189
+ | 参数 | 含义 | 变更情况 |
190
+ | ---------------------- | -------------------------------- | ------------------------ |
191
+ | highlight | 控制是否高亮代码 | 1.x 版本移除 |
192
+ | language | 代码语言 | 无 |
193
+ | old-string | 旧的字符串 | 无 |
194
+ | new-string | 新的字符串 | 无 |
195
+ | context | 不同地方上下间隔多少行不隐藏 | 无 |
196
+ | output-format | 展示方式 | 无 |
197
+ | diff-style | 差异风格, 单词级差异或字母级差异 | 无 |
198
+ | drawFileList | 展示对比文件列表 | 1.x 版本移除 |
199
+ | renderNothingWhenEmpty | 当无对比时不渲染 | 1.x 版本移除 |
200
+ | fileName | 文件名 | 1.x 版本更名为 filename |
201
+ | newFilename | 新文件文件名 | 1.x 版本新增 |
202
+ | isShowNoChange | 当无对比时展示源代码 | 1.x 变为默认情况,故移除 |
203
+ | trim | 移除字符串前后空白字符 | 无 |
204
+ | noDiffLineFeed | 忽视不同系统换行符差异 | 无 |
205
+ | theme | 用于切换日间模式/夜间模式 | 1.x 版本新增 |
0 commit comments