前端vue3项目dagre-d3基础配置项及流程图组件示例(包括安装依赖)

目录

引言

d3是什么?

dagre是什么?

dagre-d3是什么?

dagre-d3配置项

流程图示例

依赖安装

组件示例

总结


引言

因为很多文档都是英文,刚开始调研的时候比较费劲,文档里的配置像示例又比较分散,就自己整理了一下,附上测试时写的示例

d3是什么?

d3.js 是一个强大的JavaScript库,用于在Web上生成动态、交互式的数据可视化。并且提供了大量用于处理数据和创建图形的函数和方法。这些函数和方法可以组合在一起,以创建从简单的条形图到复杂的网络图等各种类型的可视化。

官网文档:

D3 by Observable | The JavaScript library for bespoke data visualizationThe JavaScript library for bespoke data visualizationicon-default.png?t=N7T8https://d3js.org/

dagre是什么?

Dagre是一个JavaScript库,主要用于创建有向图(Directed Graph)。可以为你的应用或网站创建美观、易读的图表,特别适合于数据可视化、流程图和状态机等场景。

Dagre提供了一套简单的API,允许开发者将节点和边的数据结构转换为具有良好视觉效果的图形布局。其核心算法优化了节点和边的排列方式,使得整个图看起来更加清晰且有逻辑性。此外,Dagre还能兼容各种图形渲染库,如d3.js和svg.js,进一步增强了其灵活性。

dagre-d3是什么?

Dagre-D3是基于d3的dagre渲染器,是dagre的前端子库,底层使用D3进行渲染。Dagre-D3提供了一些渲染选项,使得使用Dagre创建的图形能够以更美观和交互性的方式呈现。

官网文档:

https://github.com/dagrejs/dagre-d3/wikiicon-default.png?t=N7T8https://github.com/dagrejs/dagre-d3/wiki

dagre-d3配置项

创建对象graph

const g = new dagreD3.graphlib.Graph().setGraph({});

//TB(从上到下)、BT(从下到上)、LR(从左到右)、RL(从右到左)

g.graph().rankdir = "LR";

绘制节点setNode(节点元素(唯一),{节点元素的配置项})

g.setNode(A, {

        //节点元素的形状rect(长方形)、circle(圆)、diamond(菱形)、ellipse(椭圆)

        shape: "rect",//默认,还可以自定义详细找官网

        label: "one",  //节点元素的内容

        style: "fill: #afa",  //节点元素的背景颜色

        labelStyle: "font-weight: bold",  //节点元素的内容样式

        class: “className”

        rx: 5,  //圆角

        ry: 5

});

绘制连接

g.setEdge(节点元素1, 节点元素2, {连接线配置项});

g.setEdge("one", "two", {

        //连接箭头样式normal(实心三角), vee(箭头), undirected(无)

        arrowhead: "normal",//还可以自定义详细找官网

        label:"one-two"//连接线提示内容

        labelStyle:""//连接线提示内容样式

        style: "fill: #afa",  //连接线样式

        arrowheadStyle: "fill: #f66"//箭头样式

        arrowheadClass: ""

});

流程图示例

依赖安装

 d3

npm install d3

yarn add d3

dagre-d3

npm install dagre-d3

yarn add dagre-d3

组件示例

<script setup>
import * as d3 from "d3";
import dagreD3 from "dagre-d3";
import { onMounted } from "vue";
const digraphdHandle = () => {
  const g = new dagreD3.graphlib.Graph().setGraph({});
  g.setDefaultEdgeLabel(function () {
    return {};
  });
  //方向
  g.graph().rankdir = "LR";
  //绘制节点
  g.setNode("A", {
    shape: "circle",
    label: "A",
    style: "fill: #afa",
  });
  g.setNode("B", { label: "label:B" });
  g.setNode("C", { label: "CCC" });
  g.setNode("D", { label: "D" });
  g.setNode("E", { label: "E" });
  g.setNode("F", { label: "F" });
  //绘制连接线
  g.setEdge("A", "B", {
    arrowhead: "vee",
    arrowheadStyle: "fill: #f66",
    style: "stroke: #f66;stroke-width: 1.5px;stroke-dasharray: 5, 5;",
  });
  g.setEdge("A", "C", {
    arrowhead: "undirected",
    curve: d3.curveBasis,
  });
  g.setEdge("B", "D");
  g.setEdge("C", "E");
  g.setEdge("D", "F");
  g.setEdge("E", "F");
  const svg = d3.select("#graphSvg");
  const render = new dagreD3.render();
  // Center the graph
  const svgGroup = svg.append("g");
  render(d3.select("svg g"), g);
  svg.attr("width", g.graph().width + 40);
  svg.attr("height", g.graph().height + 40);
  svgGroup.attr("transform", "translate(20, 20)");
};
onMounted(() => {
  digraphdHandle();
});
</script>

<template>
  <div class="graph"><svg id="graphSvg" width="800" height="600"></svg></div>
</template>

<style>
.graph {
  background-color: antiquewhite;
}
#graphSvg {
  background-color: #e5ebd3;
}
.node rect {
  stroke: #999;
  fill: #fff;
  stroke-width: 1.5px;
}
.node circle {
  stroke: #999;
  /* fill: #fff; */
  stroke-width: 1.5px;
}

.edgePath path.path {
  stroke: #333;
  fill: none;
  stroke-width: 1.5px;
}
</style>

总结

前期调研使用到的一些配置项和测试示例,适用于没有接触过d3、dagre-d3的开发人员快速了解流程图开发,也方便自己日后使用。

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue dagre-d3.js是一个用于在Vue.js框架中实现DAG(有向无环图)可视化的库。它结合了vue.js、dagre和d3.js这三个库的功能。 DAG是一种图形结构,其中节点表示任务或事件,边表示任务之间的依赖关系。DAG的可视化对于理解和分析任务之间的关系非常有帮助。 Vue dagre-d3.js库通过提供一组Vue组件,使DAG的可视化变得容易。它利用了dagre-d3和d3.js库的功能来布局和渲染DAG图。 使用Vue dagre-d3.js库,我们可以将DAG图表示为一个Vue组件,该组件可以在Vue应用程序中使用。我们可以定义节点和边,并指定它们之间的关系。然后,Vue dagre-d3.js库将负责将该图形布局为可视化的DAG图。 该库提供了一些自定义选项,可以定义节点的样式,边的样式和布局选项。通过这些选项,我们可以自定义DAG图的外观和布局以满足特定需求。 总之,Vue dagre-d3.js是一个方便易用的库,可以在Vue.js应用程序中实现DAG图的可视化。它简化了创建和布局DAG图的过程,并提供了许多定制选项来满足不同需求。无论是在项目管理、工作流程分析还是其他领域,Vue dagre-d3.js都是一个有价值的工具。 ### 回答2: Vue dagre-d3.js 是一个基于 Vue.js 的库,用于在 web 页面上绘制和可视化图形。它使用了 dagre-d3.js 库作为底层,使得在 Vue.js 中使用 dagre-d3.js 变得更加简单。 dagre-d3.js 是一个使用 d3.js 的 JavaScript 库,用于在 web 页面上绘制有向无环图(DAG)。它提供了一套强大的布局算法,可以将节点和边按照一定的规则自动排列成一张美观的图形。 Vue dagre-d3.js 的主要功能包括创建图形,添加节点和边,设置节点和边的样式,以及支持交互操作。在 Vue.js 中使用它,我们可以通过引入组件的方式来使用它,然后在组件中通过配置选项来定义图形的结构和样式。 通过 Vue dagre-d3.js,我们可以轻松地绘制各种类型的图形,如组织结构图、流程图依赖关系图等。它提供了丰富的配置选项,可以自定义节点和边的样式,包括颜色、大小、形状等。同时,它还支持拖拽、缩放等交互操作,使得用户可以灵活地操作图形。 总结来说,Vue dagre-d3.js 是一个方便在 Vue.js 中使用 dagre-d3.js 库的工具,它能够帮助我们快速地实现图形的创建、布局和交互。无论是需要在网页上展示图形,还是进行图形数据的可视化分析,Vue dagre-d3.js 都是一个不错的选择。 ### 回答3: Vue Dagre-d3.js是一个基于Vue框架和Dagre-d3.js库的图形可视化组件Dagre-d3.js是一个用于绘制有向无环图(DAG)和树的JavaScript库。它基于Dagre图布局引擎和D3.js可视化库,提供了快速、灵活和可定制的图形布局和绘制功能。 Vue Dagre-d3.js利用了Vue框架的特性和Dagre-d3.js的强大功能,提供了一种更加便捷的方式来构建和渲染图形可视化组件。 使用Vue Dagre-d3.js,我们可以轻松地在Vue项目中绘制各种类型的图形,如有向无环图(DAG)、树状图等。我们可以通过定义节点和边的数据模型,并使用Vue的数据驱动特性来动态更新图形的布局和内容。 Vue Dagre-d3.js还提供了丰富的配置选项和事件回调函数,使我们可以自定义图形的外观和交互行为。我们可以设置节点和边的样式、大小和位置,以及鼠标交互时的动画效果。 总而言之,Vue Dagre-d3.js是一个功能强大、易于使用和可定制的图形可视化组件,它结合了Vue框架和Dagre-d3.js库的优势,为我们提供了一种简单而灵活的方式来构建和展示各种图形。无论是构建管理系统、数据分析仪表盘还是可视化数据结构,Vue Dagre-d3.js都是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值