VueFlow入门
什么是 VueFlow
安装 VueFlow
样式引用
import '@vue-flow/core/dist/style.css' import '@vue-flow/core/dist/theme-default.css' import '@vue-flow/controls/dist/style.css' import '@vue-flow/minimap/dist/style.css'
快速开始
<template> <div class="flow-content" @drop="onDrop"> <VueFlow v-model:nodes="nodes" v-model:edges="edges" fit-view-on-init default-marker-color="#409EFF" @node-click="logEvent('click', $event)" @edge-click="logEvent('edge clicked', $event)" @connect="logEvent('connect', $event)" @selection-start="logEvent('selection111',$event)" @dragover="onDragOver" @dragleave="onDragLeave" > <Background :size="1" :gap="20" pattern-color="#BDBDBD" /> <MiniMap></MiniMap> <Controls></Controls> <Panel> <el-card style="width: 150px;"> <div class="flow-menu-div"> <el-button class="menu-btn" type="primary" @click="onSave"> <el-icon class="menu-icon" color="#ADFF2F"><CirclePlusFilled /></el-icon> 菜单 </el-button> </div> </el-card> </Panel> <template #node-tc="tcNodeProps"> <TcNode v-bind="tcNodeProps" @CustomSettingOPen:value="openSetting" /> </template> </VueFlow> </div> </template>
- edges:连接线数据
- nodes:节点数据
- fit-view-on-init:默认图居中
- default-marker-color:连接线节点颜色
import { VueFlow, Panel, MarkerType } from '@vue-flow/core' import { Controls } from '@vue-flow/controls' import { MiniMap } from '@vue-flow/minimap' import '@vue-flow/core/dist/style.css' import '@vue-flow/core/dist/theme-default.css' const nodes = ref([ { id: '1', type: 'default', data: { color: presets.ayame }, position: { x: 0, y: 50 }, }, { id: '2', type: 'default', data: { color: presets.ayame }, position: { x: 0, y: 50 }, } ]) const edges = ref([ { id: 'e1a-2', source: '1', sourceHandle: 'a', target: '2', animated: true, style: { stroke: presets.ayame, }, } ])
节点类型(type:):default、input(只有输出)、output(只有输入)