ETL平台搭建跳坑系列之jsplumb.js导入

ETL平台搭建跳坑(一)

1、遇到的问题和难题

作为一名前端小白,完成项目任务时也是一个不断挖坑不断跳坑的过程,这两天在完成一个ETL平台导入转换功能的模块,遇到了很多问题,现在也在逐个解决。
1)id调用canvas失败
经多次尝试,发现只能使用ref调用。
在尝试过程中,在无子组件页面中,使用id与ref的效果相同,但是放入到我已经搭载好的页面框架中却只能使用ref。
2)解决掉canvas问题后,发现若全部自己编写绘制转换关系部分的功能,耗时耗力,决定引入相关的开发组件——流程图绘制组件。

2、技术调研

1)通过多方查阅资料,发现由于我使用了页面分区组件,使得无法直接对其dom元素进行操作
vue官网描述:ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 r e f s 对 象 上 。 如 果 在 普 通 的 D O M 元 素 上 使 用 , 引 用 指 向 的 就 是 D O M 元 素 ; 如 果 用 在 子 组 件 上 , 引 用 就 指 向 组 件 实 例 调 用 子 组 件 : 给 子 组 件 定 义 &lt; c a n v a s r e f = ” y e a h ” &gt; &lt; / c a n v a s &gt; 调 用 这 个 组 件 l e t c a n v a s = t h i s . refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例 调用子组件: 给子组件定义 &lt;canvas ref=”yeah” &gt;&lt;/canvas&gt; 调用这个组件 let canvas=this. refsDOM使DOM<canvasref=yeah></canvas>letcanvas=this.refs.yeah
2)为选择一个适合项目的插件,我进行了一系列的调研
一开始我只是简单的进行了组态插件的搜索,并没有找到一个很好的插件(只找到了一个13年公布关于c语言的开源思路http://www.qtcn.org/bbs/read-htm-tid-57751.html)。之后开始了对流程图js插件的调研,发现同类插件有很多,比较常见的包括以下五种:
flowchart.js、 go.js、 joint.js、 jsPlumb.js、 d3.js
详细介绍请看https://blog.csdn.net/alvinnoending/article/details/52937689

3、选型

通过对这几个js插件的了解,并结合我们自己项目的需求,发现了已有etl工具开发使用了 jsPlumb.js插件,既然有大佬使用过,那我跟着肯定没有问题啦。

4、项目引入过程

虽然我只是按照https://blog.csdn.net/alvinnoending/article/details/52937689这篇文章使用,但是导入过程中遇到了诸多的问题,接下来给大家介绍一下我导入成功的最终步骤。
下载jsplumb.js在vue框架下的插件
下载d3.js插件
核对.json文件是否添加成功
在这里插入图片描述在这里插入图片描述
开始调用(调用过程中可以按照本人的参考文章进行)

5、跳坑

导入过程毕竟不是那么的顺利,下面给大家简单介绍一下我遇到的问题以及解决方案。
1)在子组件框架下,因无法id无效导致无法进行调用
暂时还未找到解决方案,选择自己搭建页面布局

2)生命周期渲染问题
最开始发现在methods中效果不理想,放在了mounted里边,得到了解决。为了能够更好的效果,更改到updated中,所有问题完美解决。
mounted:在页面渲染过程中
updated:页面渲染完成后,每次数据发生变化时

3)anchor失效问题
尝试了多种方法,但是从树上拖拽下来的节点并没有anchor,也因此无法进行连线。
d3.seletor产生的节点被封装在nodelist中,是一个节点数组,也因为完美每次只需要添加一个节点,所以在进行anchor添加时传入的参数从node改为node[0],完美的解决问题

4)链接信息返回
jsPlumb.getAllConnections() 可以返回当前页面所有链接信息

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值