1、依赖安装

$ npm i --save @vue-flow/core
# or
$ yarn add @vue-flow/core
# 其他根据需要安装,例如:
$ npm i --save @vue-flow/additional-components

2、局部引入

//样式引入
import '@vue-flow/core/dist/style.css';
import '@vue-flow/core/dist/theme-default.css';
//根据使用情况,引入相关组件
import { Background, Panel, PanelPosition, Controls } from '@vue-flow/additional-components'
import { VueFlow, useVueFlow } from '@vue-flow/core'

3、组件使用

<VueFlow fit-view-on-init class="my-flow" v-model="elements"><Background /><Panel :position="PanelPosition.TopRight"><div><label for="ishidden">hidden<input id="ishidden" v-model="isHidden" type="checkbox" /></label></div></Panel><Controls />
</VueFlow>

4、vue3、elementui完整代码

<style lang="less" scoped>
.my-flow {margin: 10px;height: 400px;:deep(.node-light) {background: none;}:deep(.node-dark) {background: #eeeeee;}
}
</style>
<template><div class="container"><el-row :gutter="24"><el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">相关文档:<a href="https://vueflow.dev/" target="_blank">Vue Flow官方文档</a></el-col></el-row><el-divider content-position="left">Vue Flow</el-divider><el-row class="mb-4"><el-button type="primary" @click="resetTransform">重置</el-button><el-button type="primary" @click="updatePos">修改属性</el-button><el-button type="primary" @click="toggleclass">修改样式</el-button><el-button type="primary" @click="logToObject">查看属性</el-button></el-row><VueFlow fit-view-on-init class="my-flow" v-model="elements"><Background /><Panel :position="PanelPosition.TopRight"><div><label for="ishidden">hidden<input id="ishidden" v-model="isHidden" type="checkbox" /></label></div></Panel><Controls /></VueFlow></div>
</template><script lang="ts" setup name="DemoBpmn">import '@vue-flow/core/dist/style.css';
/* import the default theme (optional) */
import '@vue-flow/core/dist/theme-default.css';import { Background, Panel, PanelPosition, Controls } from '@vue-flow/additional-components'
import { VueFlow, useVueFlow } from '@vue-flow/core'
import { ref, watch } from 'vue'
import { ElMessage } from 'element-plus';const data = [{ id: '1', type: 'input', label: 'Node 1', position: { x: 250, y: 5 } },{ id: '2', label: 'Node 2', position: { x: 100, y: 100 } },{ id: '3', label: 'Node 3', position: { x: 400, y: 100 } },{ id: '4', label: 'Node 4', position: { x: 400, y: 200 } },{ id: 'e1-2', source: '1', target: '2', animated: true },{ id: 'e1-3', source: '1', target: '3' },
]
let elements = ref(data)const isHidden = ref(false)let { onPaneReady, onNodeDragStop, onConnect, addEdges, setTransform, toObject, nodes, edges } = useVueFlow()watch(isHidden, () => {nodes.value.forEach((n) => (n.hidden = isHidden.value))edges.value.forEach((e) => (e.hidden = isHidden.value))
})onPaneReady(({ fitView }) => {fitView()
})
onNodeDragStop((e) => console.log('drag stop', e))
onConnect((params) => addEdges([params]))const updatePos = () => {nodes.value.forEach((el) => {el.position = {x: Math.random() * 400,y: Math.random() * 400,}})
};const logToObject = () => {ElMessage.info(JSON.stringify(toObject()));
};
const resetTransform = () => {elements.value = datasetTransform({ x: 0, y: 0, zoom: 1 })
};
const toggleclass = () => nodes.value.forEach((el) => (el.class = el.class === 'node-light' ? 'node-dark' : 'node-light'))</script>

官方文档:https://vueflow.dev/

旧版本vue-flow代码例子:https://gitee.com/huanglgln/vue-sys-manage

新版本vue-flow代码例子:https://gitee.com/huanglgln/vue-sys-manage-el

演示地址:http://101.43.32.67:8081

vue3流程图组件vue flow使用相关推荐

  1. vue3+ant design vue+ts实战【ant-design-vue组件库引入】

    vue3 UI组件库 Ant Design of Vue Ant Design Vue

  2. vue2 怎么用vite_Vue2和Vue3开发组件有什么区别

    我们一直都有关注和阅读很多关于Vue3的新特性和功能即将到来.但是我们没有一个具体的概念在开发中会有如何的改变和不一样的体验.还有一些童鞋已经开始又慌又抓狂了 -- "又要开始学新的写法了 ...

  3. vue3.0 组件使用 引用 传值 父传子 子传父

    vue3.0 组件使用 引用 传值 父传子 子传父 组件的创建 组件引入 在html中使用 组件传值 父传子 子接收参数 子传父 父接收参数 组件的创建 1.将所需功能封装在components目录下 ...

  4. vue3之组件通信 (props父传子,子传孙)(ts定义数组类型)

    目录 vue3之组件通信 1 props父传子,子传孙 1-1 父组件 1-2 子组件 1-3 孙组件 2:父子传值 2:-1 父组件向子组件传值 Props 2-2 子组件向父组件传值 emit 3 ...

  5. Vue3动态绑定组件警告处理

    Vue received a Component which was made a reactive object. This can lead to unnecessary performance ...

  6. VUE3 之 组件传参

    目录 1. 概述 2. 组件传参 3. 综述 4. 个人公众号 1. 概述 韦奇定律告诉我们:大部分人都很容易被别人的话所左右,从而开始动摇.怀疑,最终迷失自我.因此我们要努力的坚定信念,相信自己,才 ...

  7. VUE3祖孙组件传值调用方法

    VUE3祖孙组件传值调用方法 父子组件传参可以通过 props 和 emit 来实现,但是当组件的层次结构比较深时,props 和 emit 就太繁琐了.vue为了解决这个提出了 provide / ...

  8. vue3.0 组件传值

    vue3.0组件传值 子组件 代码如下(示例): <template><p @click="handle">{{ test }}</p> < ...

  9. vue3父组件调用子组件的方法

    东风vue3父组件调用子组件的方法是通过expose和ref来实现的,我们可以通过expose来控制父组件可以访问子组件那些的方法和对象,我们将通过setup api(组合式 api)和option ...

最新文章

  1. 宇宙是一个无始无终的循环?
  2. MVC Filter自定义异常(拦截)
  3. 摄像头(Ov965x)驱动分析
  4. Silverlight 4 Beta开发版带着许多新特性发布
  5. js如何调用h5的日期控价_微信公众号支付H5调用支付解析
  6. [日常] DNS的迭代查询过程
  7. 几分钟学会归并排序和快速排序
  8. Office转PDF,Aspose太贵,怎么办?
  9. 齐次坐标,怎么你也叫Homogeneous
  10. 数据结构专题:数据结构的学习困境
  11. opencv ORB角检测
  12. 845芯片组SMM 控制寄存器
  13. 统计bytearray中的bitcount
  14. 问题总结(一)使用代码调整SharePoint WebPart 视图和列表菜单
  15. 下载python的步骤ios_如何使用 Python 开发 iOS 程序?
  16. 截图软件 snipaste
  17. 搜狗拼音皮肤 php文件,搜狗输入法皮肤制作教程(组图版)
  18. 【茶知识】普洱茶四大茶区的区别特点
  19. 2021-2027全球与中国自动卡车装卸系统市场现状及未来发展趋势
  20. 如何统计自己写的代码量

热门文章

  1. 打印出九九乘法口诀表
  2. MIUI13使用fiddle抓包小程序
  3. 一些故事让我们流眼泪( 二 )
  4. 如果基督山伯爵上了起点网……
  5. 苹果新iPad创新乏力,中国发售遇冷失宠
  6. Java学习笔记一Tomcat 8.5 的WebSocket 支持
  7. css 元素淡出淡入_使用CSS顺序淡入元素
  8. 【工作记录】清理临时表空间的数据文件(TEMP01.DBF)
  9. iptables的mangle表
  10. 防火墙Mangle-简介从零开始学RouterOS系列07