狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

前端流程圖插件對比選型

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

前言

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

流程圖插件匯總

序號名稱地址
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不兼容,目前國內使用較少。包含四個功能組件 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';

優缺點分析

優點:

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

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

  3. 快速:鏈路被動更改,僅重新渲染適當的元素。

  4. 工具和組合:帶有圖形助手和狀態可組合函數,用于高級用途。

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

缺點:

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

  2. 國內使用人數少,沒有相關技術博客介紹,通過官網學習。

butterfly

簡介

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

使用

  • 安裝

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中獲取的數據

  canvas.setGridMode(true, {

    isAdsorb: false, // 是否自動吸附,默認關閉

    theme: {

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

      gap: 20, // 網格間隙

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

      circleRadiu: 1.5, // 圓點半徑

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

    },

  });

});

</script>


<template>

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

</template>

優缺點分析

優點:

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

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

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

  4. 優秀的組件庫支持:對于當前使用組件庫來說,可以大量復用現有的組件。

缺點:

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

JointJS

簡介

創建靜態圖表或完全交互式圖表工具,例如工作流編輯器、流程管理工具、IVR 系統、API 集成器、演示應用程序等等。

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

AntV G6

簡介

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

使用

  • 安裝

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

  • 在所需要的文件中引入

<template>

  /* 圖的畫布容器 */

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

</template>


<script setup>

import G6 from '@antv/g6';

// 定義數據源

const data = {

  // 點集

  nodes: [

    {

      id: 'node1',

      x: 100,

      y: 200,

    },

    {

      id: 'node2',

      x: 300,

      y: 200,

    },

  ],

  // 邊集

  edges: [

    // 表示一條從 node1 節點連接到 node2 節點的邊

    {

      source: 'node1',

      target: 'node2',

    },

  ],

};


// 創建 G6 圖實例

const graph = new G6.Graph({

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

  // 畫布寬高

  width: 800,

  height: 500,

});

// 讀取數據

graph.data(data);

// 渲染圖

graph.render();

</script>

優缺點分析

優點:

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

  2. 全面的圖表類型支持:G6 支持多種常見圖表類型,如關系圖、流程圖、樹圖等,可滿足不同領域的數據可視化需求。

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

缺點:

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

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

jsPlumb

簡介

一個用于創建交互式、可拖拽的連接線和流程圖的 Javascript 庫。它在 Web 應用開發中廣泛應用于構建流程圖編輯器、拓撲圖、組織結構圖等可視化操作界面。

使用

<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(() => {

  // 創建 jsPlumb 實例

  const jsPlumbInstance = jsPlumb.getInstance();


  // 初始化 jsPlumb 實例設置

  if (container.value) {

    jsPlumbInstance.setContainer(container.value);

  }


  // 創建連接線

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

    jsPlumbInstance.connect({

      source: sourceElement.value,

      target: targetElement.value,

    });

  }

});

</script>

優缺點分析

優點:

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

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

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

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

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

Flowchart.js

簡介

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

使用

flowchat

start=>start: 開始

end=>end: 結束

input=>inputoutput: 我的輸入

output=>inputoutput: 我的輸出

operation=>operation: 我的操作

condition=>condition: 確認

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

condition(yes)->end

condition(no)->operation

優缺點

優點:

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

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

缺點:

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

  2. 需要花費一定時間來學習他的語法和規則,但是flowchartjs的社區也相對不太活躍。

對比分析

  1. 功能和靈活性:

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

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

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

    • Flowchart.js 則相對基礎,提供了構建簡單流程圖的基本功能。

  2. 技術棧和生態系統:

    • Vue-Flow 是基于 Vue.js 的流程圖庫,與 Vue.js 生態系統無縫集成。

    • Butterfly 是一個基于 Typescript 的框架,適用于現代 Web 開發。

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

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

  3. 文檔和學習曲線:

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

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

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

  4. 兼容性:

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


查看原文



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