Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@git-diff-view/vue

Package Overview
Dependencies
Maintainers
1
Versions
48
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@git-diff-view/vue

@git-diff-view/vue

latest
Source
npmnpm
Version
0.1.5
Version published
Weekly downloads
19K
-9.35%
Maintainers
1
Weekly downloads
 
Created
Source

@git-diff-view/vue

A high-performance Vue diff view component with GitHub-style UI

npm version npm downloads

Features

  • ✅ Split & Unified views
  • ✅ Syntax highlighting with full context
  • ✅ Light & Dark themes
  • ✅ SSR support
  • ✅ Vue 3 composition API
  • ✅ Widget & extend data system with slots
  • ✅ High performance with Web Worker support

Installation

npm install @git-diff-view/vue
# or
pnpm add @git-diff-view/vue
# or
yarn add @git-diff-view/vue

Quick Start

Basic Usage

<script setup>
import { DiffView, DiffModeEnum } from "@git-diff-view/vue";
import "@git-diff-view/vue/styles/diff-view.css";

const diffData = {
  oldFile: { fileName: "old.ts", content: "..." },
  newFile: { fileName: "new.ts", content: "..." },
  hunks: ["..."]
};
</script>

<template>
  <DiffView
    :data="diffData"
    :diff-view-mode="DiffModeEnum.Split"
    diff-view-theme="dark"
    :diff-view-highlight="true"
  />
</template>

Advanced Usage with DiffFile

File Comparison Mode

<script setup>
import { DiffView } from "@git-diff-view/vue";
import { DiffFile, generateDiffFile } from "@git-diff-view/file";
import "@git-diff-view/vue/styles/diff-view.css";

const file = generateDiffFile(
  "old.ts", oldContent,
  "new.ts", newContent,
  "typescript", "typescript"
);
file.initTheme('dark');
file.init();
file.buildSplitDiffLines();
</script>

<template>
  <DiffView :diff-file="file" />
</template>

Git Diff Mode

<script setup>
import { DiffView } from "@git-diff-view/vue";
import { DiffFile } from "@git-diff-view/core";
import "@git-diff-view/vue/styles/diff-view.css";

const file = new DiffFile(
  oldFileName,
  oldContent,
  newFileName,
  newContent,
  hunks,
  oldFileLang,
  newFileLang
);
file.initTheme('dark');
file.init();
file.buildSplitDiffLines();
</script>

<template>
  <DiffView :diff-file="file" />
</template>

Styling

<script>
// Default styles with Tailwind (next release will be pure CSS)
import "@git-diff-view/vue/styles/diff-view.css";

// Pure CSS (no Tailwind conflicts)
import "@git-diff-view/vue/styles/diff-view-pure.css";
</script>

API Reference

Props

PropTypeDescription
dataDiffDataDiff data with oldFile, newFile, and hunks
diffFileDiffFilePre-processed diff file instance
diffViewModeSplit | UnifiedView mode (default: Split)
diffViewThemelight | darkTheme (default: light)
diffViewHighlightbooleanEnable syntax highlighting
diffViewWrapbooleanEnable line wrapping
diffViewFontSizenumberFont size in pixels
diffViewAddWidgetbooleanEnable widget button
extendDataExtendDataAdditional data per line

Slots

SlotPropsDescription
widget{ onClose, side, lineNumber }Custom widget content
extend{ data }Custom extend data content

Events

EventPayloadDescription
onAddWidgetClick{ side, lineNumber }Fired when widget button is clicked

DiffData Type

type DiffData = {
  oldFile?: {
    fileName?: string | null;
    fileLang?: string | null;
    content?: string | null;
  };
  newFile?: {
    fileName?: string | null;
    fileLang?: string | null;
    content?: string | null;
  };
  hunks: string[];
};

Examples

Live Demo

Try it online: https://mrwangjusttodo.github.io/git-diff-view

License

MIT © MrWangJustToDo

Keywords

diff component

FAQs

Package last updated on 26 May 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts