npm add @vue-flow/core
javascript
npm install @vue-flow/background @vue-flow/minimap @vue-flow/controls

VueFlow负责画布本体nodes负责节点数据edges负责连线数据Background负责网格背景MiniMap负责右下角缩略图Controls负责缩放、重置等控制
type这是节点类型。
Vue Flow 里有默认类型,比如:
input:起始节点output:结束节点default:普通节点
it-view-on-init这个参数表示:
页面初始化完成后,自动把画布内容缩放到合适的可视范围。
javascript
<template>
<div class="page">
<VueFlow :nodes="nodes" :edges="edges" fit-view-on-init>
<Background />
<MiniMap />
<Controls />
</VueFlow>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { VueFlow } from '@vue-flow/core'
import { Background } from '@vue-flow/background'
import { MiniMap } from '@vue-flow/minimap'
import { Controls } from '@vue-flow/controls'
// 样式
import '@vue-flow/core/dist/style.css'
import '@vue-flow/core/dist/theme-default.css'
import '@vue-flow/minimap/dist/style.css'
import '@vue-flow/controls/dist/style.css'
const nodes = ref([
{
id: '1',
position: { x: 100, y: 100 },
data: { label: '开始节点1' },
type: 'input',
},
{
id: '2',
position: { x: 400, y: 100 },
data: { label: '处理节点32' },
},
{
id: '3',
position: { x: 800, y: 100 },
data: { label: '处理节点32' },
},
])
const edges = ref([
{
id: 'e1-2',
source: '1',
target: '3',
},
{
id: 'e1-1',
source: '2',
target: '3',
},
])
</script>
<style scoped>
.page {
width: 100vw;
height: 100vh;
}
</style>