LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

前端流程圖插件對比選型

freeflydom
2023年8月26日 8:57 本文熱度 1271
 

前言

前端領(lǐng)域有多種流程庫可供選擇,包括但不限于vue-flow、butterfly、JointJS、AntV G6、jsPlumb和Flowchart.js。這些庫都提供了用于創(chuàng)建流程圖、圖形編輯和交互的功能。然而,它們在特性、易用性和生態(tài)系統(tǒng)方面存在一些差異。

流程圖插件匯總

序號名稱地址
1vue-flowgithub.com/bcakmakoglu…
2butterflygithub.com/alibaba/but…
3JointJSwww.jointjs.com/
4AntV G6antv-2018.alipay.com/zh-cn/g6/3.…
5jsPlumbgithub.com/jsplumb/jsp…
6Flowchart.jsgithub.com/adrai/flowc…

流程圖插件分析

vue-flow

簡介

vue-flowReactFlow 的 Vue 版本,目前只支持 在Vue3中使用,對Vue2不兼容,目前國內(nèi)使用較少。包含四個功能組件 core、background、controls、minimap,可按需使用。

使用

Vue Flow 是Vue下流程繪制庫。安裝:

npm i --save @vue-flow/core 安裝核心組件

npm i --save @vue-flow/background 安裝背景組件

npm i --save @vue-flow/controls 安裝控件(放大,縮小等)組件

npm i --save @vue-flow/minimap 安裝縮略圖組件


引入組件:

import { Panel, PanelPosition, VueFlow, isNode, useVueFlow } from '@vue-flow/core'

import { Background } from '@vue-flow/background'

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';

優(yōu)缺點分析

優(yōu)點:

  1. 輕松上手:內(nèi)置縮放和平移功能、元素拖動、選擇等等。

  2. 可定制:使用自定義節(jié)點、邊緣和連接線并擴展Vue Flow的功能。

  3. 快速:鏈路被動更改,僅重新渲染適當(dāng)?shù)脑亍?/p>

  4. 工具和組合:帶有圖形助手和狀態(tài)可組合函數(shù),用于高級用途。

  5. 附加組件:背景(內(nèi)置模式、高度、寬度或顏色),小地圖(右下角)、控件(左下角)。

缺點:

  1. 倉庫迭代版本較少,2022年進入首次迭代。

  2. 國內(nèi)使用人數(shù)少,沒有相關(guān)技術(shù)博客介紹,通過官網(wǎng)學(xué)習(xí)。

butterfly

簡介

Butterfly是由阿里云-數(shù)字產(chǎn)業(yè)產(chǎn)研部孵化出來的的圖編輯器引擎,具有使用自由、定制性高的優(yōu)勢,已支持上百張畫布。號稱 “杭州余杭區(qū)最自由的圖編輯器引擎”。

使用

  • 安裝

npm install butterfly-dag --save

  • 在 Vue3 中使用

<script setup>

import {TreeCanvas, Canvas} from 'butterfly-dag';

const root = document.getElementById('chart')

const canvas = new Canvas({

  root: root,

  disLinkable: true, // 可刪除連線

  linkable: true, // 可連線

  draggable: true, // 可拖動

  zoomable: true, // 可放大

  moveable: true, // 可平移

  theme: {

    edge: {

      shapeType: "AdvancedBezier",

      arrow: true,

      arrowPosition: 0.5, //箭頭位置(0 ~ 1)

      arrowOffset: 0.0, //箭頭偏移

    },

  },

});

canvas.draw(mockData, () => {

  //mockData為從mock中獲取的數(shù)據(jù)

  canvas.setGridMode(true, {

    isAdsorb: false, // 是否自動吸附,默認(rèn)關(guān)閉

    theme: {

      shapeType: "circle", // 展示的類型,支持line & circle

      gap: 20, // 網(wǎng)格間隙

      background: "rgba(0, 0, 0, 0.65)", // 網(wǎng)格背景顏色

      circleRadiu: 1.5, // 圓點半徑

      circleColor: "rgba(255, 255, 255, 0.8)", // 圓點顏色

    },

  });

});

</script>


<template>

  <div id="chart"></div>

</template>

優(yōu)缺點分析

優(yōu)點:

  1. 輕松上手:基于dom的設(shè)計模型大大方便了用戶的入門門檻,提供自定義節(jié)點,錨點的模式大大降低了用戶的定制性。

  2. 多技術(shù)棧支持:支持 jquery 基于 dom 的設(shè)計,也包含 butterfly-react、butterfly-vue 兩種設(shè)計。

  3. 核心概念少而精:提供 畫布(Canvas)、節(jié)點(Node)、線(Edge)等核心概念。

  4. 優(yōu)秀的組件庫支持:對于當(dāng)前使用組件庫來說,可以大量復(fù)用現(xiàn)有的組件。

缺點:

  1. butterfly 對 Vue的支持不是特別友好,這跟阿里的前端技術(shù)主棧為React有關(guān),butterfly-vue庫只支持 Vue2版本。在Vue3上使用需要對 butterfly-drag 進行封裝。

JointJS

簡介

創(chuàng)建靜態(tài)圖表或完全交互式圖表工具,例如工作流編輯器、流程管理工具、IVR 系統(tǒng)、API 集成器、演示應(yīng)用程序等等。

屬于閉源收費項目,暫不考慮。

AntV G6

簡介

AntV 是螞蟻金服全新一代數(shù)據(jù)可視化解決方案,致力于提供一套簡單方便、專業(yè)可靠、無限可能的數(shù)據(jù)可視化最佳實踐。G6 是一個圖可視化引擎。它提供了圖的繪制、布局、分析、交互、動畫等圖可視化的基礎(chǔ)能力。G6可以實現(xiàn)很多d3才能實現(xiàn)的可視化圖表。

使用

  • 安裝

npm install --save @antv/g6 //安裝

  • 在所需要的文件中引入

<template>

  /* 圖的畫布容器 */

  <div id="mountNode"></div>

</template>


<script setup>

import G6 from '@antv/g6';

// 定義數(shù)據(jù)源

const data = {

  // 點集

  nodes: [

    {

      id: 'node1',

      x: 100,

      y: 200,

    },

    {

      id: 'node2',

      x: 300,

      y: 200,

    },

  ],

  // 邊集

  edges: [

    // 表示一條從 node1 節(jié)點連接到 node2 節(jié)點的邊

    {

      source: 'node1',

      target: 'node2',

    },

  ],

};


// 創(chuàng)建 G6 圖實例

const graph = new G6.Graph({

  container: 'mountNode', // 指定圖畫布的容器 id

  // 畫布寬高

  width: 800,

  height: 500,

});

// 讀取數(shù)據(jù)

graph.data(data);

// 渲染圖

graph.render();

</script>

優(yōu)缺點分析

優(yōu)點:

  1. 強大的可定制性:G6 提供豐富的圖形表示和交互組件,可以通過自定義配置和樣式來實現(xiàn)各種復(fù)雜的圖表需求。

  2. 全面的圖表類型支持:G6 支持多種常見圖表類型,如關(guān)系圖、流程圖、樹圖等,可滿足不同領(lǐng)域的數(shù)據(jù)可視化需求。

  3. 高性能:G6 在底層圖渲染和交互方面做了優(yōu)化,能夠處理大規(guī)模數(shù)據(jù)的展示,并提供流暢的交互體驗。

缺點:

  1. 上手難度較高:G6 的學(xué)習(xí)曲線相對較陡峭,需要對圖形語法和相關(guān)概念有一定的理解和掌握。

  2. 文檔相對不完善:相比其他成熟的圖表庫,G6 目前的文檔相對較簡單,部分功能和使用方法的描述可能不夠詳盡,需要進行更深入的了解與實踐。

jsPlumb

簡介

一個用于創(chuàng)建交互式、可拖拽的連接線和流程圖的 Javascript 庫。它在 Web 應(yīng)用開發(fā)中廣泛應(yīng)用于構(gòu)建流程圖編輯器、拓?fù)鋱D、組織結(jié)構(gòu)圖等可視化操作界面。

使用

<template>

  <div ref="container">

    <div ref="sourceElement">Source</div>

    <div ref="targetElement">Target</div>

  </div>

</template>


<script setup>

import { ref, onMounted } from 'vue';

import { jsPlumb } from 'jsplumb';


const container = ref<HTMLElement | null>(null);

const sourceElement = ref<HTMLElement | null>(null);

const targetElement = ref<HTMLElement | null>(null);


onMounted(() => {

  // 創(chuàng)建 jsPlumb 實例

  const jsPlumbInstance = jsPlumb.getInstance();


  // 初始化 jsPlumb 實例設(shè)置

  if (container.value) {

    jsPlumbInstance.setContainer(container.value);

  }


  // 創(chuàng)建連接線

  if (sourceElement.value && targetElement.value) {

    jsPlumbInstance.connect({

      source: sourceElement.value,

      target: targetElement.value,

    });

  }

});

</script>

優(yōu)缺點分析

優(yōu)點:

  1. 簡單易用:jsPlumb 提供了直觀的 API 和豐富的文檔,比較容易上手和使用。

  2. 可拓展性:允許開發(fā)人員根據(jù)自己的需求進行定制和擴展,使其適應(yīng)不同的應(yīng)用場景。

  3. 強大的連接功能:jsPlumb 允許創(chuàng)建各種連接類型,包括直線、曲線和箭頭等,滿足了復(fù)雜交互需求的連接效果。 缺點:

  4. 文檔更新不及時:有時候,jsPlumb 的官方文檔并沒有及時更新其最新版本的特性和用法。

  5. 性能考慮:在處理大量節(jié)點、連接線或復(fù)雜布局時,jsPlumb 的性能可能受到影響,需要進行優(yōu)化。

Flowchart.js

簡介

Flowchart.js 是一款開源的Javascript流程圖庫,可以使用最短的語法來實現(xiàn)在頁面上展示一個流程圖,目前大部分都是用在各大主流 markdown 編輯器中,如掘金、csdn、語雀等等。

使用

flowchat

start=>start: 開始

end=>end: 結(jié)束

input=>inputoutput: 我的輸入

output=>inputoutput: 我的輸出

operation=>operation: 我的操作

condition=>condition: 確認(rèn)

start->input->operation->output->condition

condition(yes)->end

condition(no)->operation

優(yōu)缺點

優(yōu)點:

  1. 使用方便快捷,使用幾行代碼就可以生成一個簡單的流程圖。

  2. 可移植:在多平臺上只需要寫相同的代碼就可以實現(xiàn)同樣的效果。

缺點:

  1. 可定制化限制:對于擁有豐富需求的情況下,flowchartjs只能完成相對簡單的需求,沒有高級的定制化功能。

  2. 需要花費一定時間來學(xué)習(xí)他的語法和規(guī)則,但是flowchartjs的社區(qū)也相對不太活躍。

對比分析

  1. 功能和靈活性:

    • Butterfly、G6 和 JointJS 是功能較為豐富和靈活的庫。它們提供了多種節(jié)點類型、連接線樣式、布局算法等,并支持拖拽、縮放、動畫等交互特性。

    • Vue-Flow 來源于 ReactFlow 基于 D3和vueuse等庫,提供了 Vue 組件化的方式來創(chuàng)建流程圖,并集成了一些常見功能。

    • jsPlumb 專注于提供強大的連接線功能,具有豐富的自定義選項和功能。

    • Flowchart.js 則相對基礎(chǔ),提供了構(gòu)建簡單流程圖的基本功能。

  2. 技術(shù)棧和生態(tài)系統(tǒng):

    • Vue-Flow 是基于 Vue.js 的流程圖庫,與 Vue.js 生態(tài)系統(tǒng)無縫集成。

    • Butterfly 是一個基于 Typescript 的框架,適用于現(xiàn)代 Web 開發(fā)。

    • JointJS、AntV G6 和 jsPlumb 可以與多種前端框架(如Vue、React、Angular等)結(jié)合使用。

    • AntV G6 是 AntV 團隊開發(fā)的庫,其背后有強大的社區(qū)和文檔支持。

  3. 文檔和學(xué)習(xí)曲線:

    • Butterfly、G6 和 AntV G6 都有完善的文檔和示例,提供了豐富的使用指南和教程。

    • JointJS 和 jsPlumb 也有較好的文檔和示例資源,但相對于前三者較少。

    • Flowchart.js 的文檔相對較少。

  4. 兼容性:

    • Butterfly、JointJS 和 G6 庫在現(xiàn)代瀏覽器中表現(xiàn)良好,并提供了兼容低版本瀏覽器


查看原文



該文章在 2023/8/26 8:57:15 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲制服中文字幕 | 日韩欧美中文久久精品人人爽 | 色婷婷综合久久久中文字幕 | 亚洲日韩精品欧美一区二区一 | 中文字幕在线有码午夜 | 天天精品国产免费 |