# v-code-diff **Repository Path**: hudl/v-code-diff ## Basic Information - **Project Name**: v-code-diff - **Description**: v-code-diff增加自定义染色功能 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-03-03 - **Last Updated**: 2025-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # v-code-diff [![NPM version](https://img.shields.io/npm/v/v-code-diff.svg?style=flat)](https://www.npmjs.com/package/v-code-diff) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Downloads](https://img.shields.io/npm/dm/v-code-diff?minimal=true)](https://www.npmjs.com/package/v-code-diff) > Vue2 / Vue3 可用的 code diff 插件

English | 简体中文

旧版本: - 0.x 版本, 最新版本 0.3.12 (传统版本,基于 [vue-code-diff](https://github.com/ddchef/vue-code-diff) 进行改进,目前不再进行维护,我们会在 1.x 版本尽量对齐 0.x 版本功能,尽量降低迁移成本) 本项目参考了以下项目,在此对原作者表示感谢! - [vue-diff](https://github.com/hoiheart/vue-diff) - [vue-code-diff](https://github.com/ddchef/vue-code-diff) - Github Code Diff ## 目录 - [安装](#安装) - [开始使用](#开始使用) - [Vue3](#Vue3) - [Vue2](#Vue2) - [在线演示](#Demo) - [组件属性](#组件属性) - [组件事件](#组件事件) - [拓展高亮语言](#拓展高亮语言) - [从 0.x 版本迁移](#从-0x-版本迁移) ## 安装 安装 `v-code-diff` ```bash # npm npm i v-code-diff # yarn yarn add v-code-diff # pnpm pnpm add v-code-diff ``` Vue2.6 及以下用户需要额外安装 composition-api ```shell pnpm add @vue/composition-api ``` ## 开始使用 ### Vue3 #### 单独引入 > 推荐使用,因为对 tree-shaking 有更好的支持。 ```vue ``` #### 注册为全局组件 ```ts import { createApp } from 'vue' import CodeDiff from 'v-code-diff' app.use(CodeDiff).mount('#app') ``` 然后 ```vue ``` ### Vue2 #### 单独引入 > 推荐使用,因为对 tree-shaking 有更好的支持。 ```vue ``` #### 注册为全局组件 ```ts import Vue from 'vue' import CodeDiff from 'v-code-diff' Vue.use(CodeDiff) ``` ## Demo | | npm | cdn | | ------ | --- | ------------------------------------------------------------------------------ | | vue2 | | [vue2-cdn](https://stackblitz.com/edit/v-code-diff-vue2-cdn?file=index.html) | | vue2.7 | | [vue27-cdn](https://stackblitz.com/edit/v-code-diff-vue27-cdn?file=index.html) | | vue3 | | [vue3-cdn](https://stackblitz.com/edit/v-code-diff-vue3-cdn?file=index.html) | ## 组件属性 | 参数 | 说明 | 类型 | 可选值 | 默认值 | |---------------------|--------------------------------------------------------------------------------------------------------------------|-----------|---------------------------|--------------| | language | 代码语言,如`typescript`,默认纯文本。 [查看全部支持语言](https://github.com/highlightjs/highlight.js/blob/main/SUPPORTED_LANGUAGES.md) | string | - | plaintext | | oldString | 旧的字符串 | string | - | - | | newString | 新的字符串 | covered | 自定义染色 | string | - | - | context | 不同地方上下间隔多少行不隐藏 | number | - | 10 | | outputFormat | 展示方式 | string | line-by-line,side-by-side | line-by-line | | diffStyle | 差异风格, 单词级差异或字母级差异 | string | word, char | word | |forceInlineComparison| 细分差异;存在差异时,强制进行行内对比(word 或 char 级) | boolean | - | false | | trim | 移除字符串前后空白字符 | boolean | - | false | | noDiffLineFeed | 不 diff windows 换行符(CRLF)与 linux 换行符(LF) | boolean | - | false | | maxHeight | 组件最大高度,例如 300px | string | - | undefined | | filename | 文件名 | string | - | undefined | | newFilename | 新文件文件名 | string | - | undefined | | hideHeader | 隐藏头部栏 | boolean | - | false | | hideStat | 隐藏头部栏中的统计信息 | boolean | - | false | | theme | 用于切换日间模式/夜间模式 | ThemeType | light , dark | light | | ignoreMatchingLines | 给出一个模式来忽略匹配行,例如:'(time\|token)' | string | - | | ## 组件事件 | Name | Description | Type | | ---- | --------------- | ------------------------------------------------------------------------------- | | diff | diff 完成后触发 | (result: {stat: { isChanged: boolean, addNum: number, delNum: number}}) => void | ## 组件插槽 | Name | Description | | ---- | ------------------------------- | | stat | 自定义统计内容,参数为 { stat } | ## 拓展高亮语言 为了减小打包后的体积,系统默认仅支持以下常用语言 - plaintext - xml/html - javascript - json - yaml - python - java - bash - sql 如果您需要的语言不在其中,可以手动引入相关的语言高亮模块 ```shell pnpm add highlight.js ``` #### 单独引入 > 推荐使用,因为对 tree-shaking 有更好的支持。 ```vue