jointJs使用随记

1.下载与安装

前提:一个健康良好且干净的vue脚手架项目。

还是普遍的安装方式

  • yarn:yarn add jointjs

  • npm:npm install jointjs

还建议安装这几个其他的插件(dagre、graphlib)

这里建议jointjs的版本不要太高。(PS:最新版本可能会报变量undefined的问题,目前仍未解决...)

2.引入

在main.js里面全局引入:import joint from 'jointjs/dist/joint.js'

  • vue2:Vue.use(joint)

  • vue3:createApp(App).user(joint) 这里我用的是vue3

主组件中引入(这里我用的vue3的语法,当然也可以使用vue2的写法我就不演示了)

<template>
 <div class="home">
   <img alt="Vue logo" src="../assets/logo.png">
   <div id="myholder"></div>
 </div>
</template>
<script>
import joint from 'jointjs/dist/joint.js'
export default {
 name: 'HomeView',
 mounted () {
   this.initJointjs()
},
 setup () {
   function initJointjs () {
     const nameS = joint.shapes

     const graph = new joint.dia.Graph({}, { cellNamespace: nameS })

     const paper = new joint.dia.Paper({
       el: document.getElementById('myholder'),
       model: graph,
       width: 600,
       height: 100,
       gridSize: 1,
       cellViewNamespace: nameS
    })

     console.log('paper', paper)

     const rect = new joint.shapes.standard.Rectangle()
     rect.position(100, 30)
     rect.resize(100, 40)
     rect.attr({
       body: {
         fill: 'blue'
      },
       label: {
         text: 'Hello',
         fill: 'white'
      }
    })
     rect.addTo(graph)

     const rect2 = rect.clone()
     rect2.translate(300, 0)
     rect2.attr('label/text', 'World!')
     rect2.addTo(graph)

     const link = new joint.shapes.standard.Link()
     link.source(rect)
     link.target(rect2)
     link.addTo(graph)
  }
   return {
     initJointjs
  }
}
}
</script>

在init()方法里面,使用的是官网给出的demo示例代码。如下图

最后启动项目,效果图如下:

后续...继续深入研究jointjs,实现复杂demo

jointJS初使用随记的更多相关文章

  1. vite初使用随记

    vite的安装 按照官网文档来看,并不难. 先检查自己电脑node的版本与npm的版本/yarn的版本 可以直接用yarn安装,yarn create vite 这是最原始的安装,即类似于安装vue- ...

  2. CI Weekly #4 | 不同规模的团队,如何做好持续集成?

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

  3. fir.im Weekly - 暖心的 iOS 持续集成,你值得拥有

    一则利好消息,flow.ci 支持 iOS 项目持续集成,想试试的伙伴去 Gitter群 问问.首批尝鲜用户@阿米amoy 已经用 flow.ci 实现了基本的 iOS 持续集成,并详细记录整个 Bu ...

  4. 机器学习&数据挖掘笔记_12(对Conjugate Gradient 优化的简单理解)

    数学优化方法在机器学习算法中至关重要,本篇博客主要来简单介绍下Conjugate Gradient(共轭梯度法,以下简称CG)算法,内容是参考的文献为:An Introduction to the C ...

  5. PBOC电子钱包与电子现金及QPBOC

    电子钱包:EP 电子现金:EC,在PBOC规范中的13部分定义了<基于借贷记应用的小额支付规范中> QPBOC:在PBOC规范的12部分中定义了<费接触式IC卡支付规范> PB ...

  6. 对Conjugate Gradient 优化的简单理解

    对Conjugate Gradient 优化的简单理解) 机器学习&数据挖掘笔记_12(对Conjugate Gradient 优化的简单理解) 数学优化方法在机器学习算法中至关重要,本篇博客 ...

  7. Python习题002

    作业1:判断某一个字符串是否是小数 def is_float(string): string1 = str(string) if string1.count('.') > 1: #检测字符串小数 ...

  8. 2016款MACBOOK PRO触控条版 安装WIN10初体验 及 无奈退货记

    新的2016MBP终于发布了,作为把苹果电脑装WIN使用的人,等候很久之后,终于可以行动了. 黄山松 (Tom Huang) 发表于博客园http://www.cnblogs.com/tomview/ ...

  9. 初码-Azure系列-记一次从阿里云到Azure的迁移和部署

    有个客户在阿里云上,这次要迁移到Azure去,手工记一下流水账 原系统信息: 阿里云ECS单Web节点(8核16G,10000IOPS SSD云盘)+阿里云ECS单数据库节点(16核32G,15000 ...

随机推荐

  1. 通过TCP Allocate连接数告警了解promethous-NodeExporter数据采集及相关知识扩散

    1.问题由来 近日有环境告警如下:TCP Allocate连接数过多 很多资料告诉我们使用:netstat –ant | grep ^tcp | wc –l命令查询,但查询的值与告警中获取的只相差很大 ...

  2. WebGPU 工具分享 - WGSL 代码高亮插件(VSCode)与预处理工具

    WGSL 还在积极讨论中,虽然各位大佬不是很满意这个新生儿. 不过,社区已经有了基础的实验性工具(VSCode 插件),并支持了较新的语法. ① WGSL 插件 这个插件支持对文件扩展名为 .wgsl ...

  3. JavaScript 里的 'this' 的一般解释

    本文旨在帮助自己和大家理解 JS 里的 this, 翻译.整理并改写自本人关注的一个博主 Dmitri Pavlutin,原文链接如下: https://dmitripavlutin.com/gent ...

  4. 使用git clone 报错curl56 errno 10054解决方法

    使用git clone 报错curl56 errno 10054解决方法 ----------------版权声明:本文为CSDN博主「伽马射线爆」的原创文章,遵循CC 4.0 BY-SA版权协议,转 ...

  5. 为什么 char 数组比 Java 中的 String 更适合存储密码?

    另一个基于 String 的棘手 Java 问题,相信我只有很少的 Java 程序员可以正确回答这个问题.这是一个真正艰难的核心Java面试问题,并且需要对 String 的扎实知识才能回答这个问题. ...

  6. Thread 类中的 yield 方法有什么作用?

    使当前线程从执行状态(运行状态)变为可执行态(就绪状态). 当前线程到了就绪状态,那么接下来哪个线程会从就绪状态变成执行状态呢?可 能是当前线程,也可能是其他线程,看系统的分配了.

  7. 哪一个List实现了最快插入?

    LinkedList和ArrayList是另个不同变量列表的实现.ArrayList的优势在于动态的增长数组,非常适合初始时总长度未知的情况下使用.LinkedList的优势在于在中间位置插入和删除操 ...

  8. @Required 注解 ?

    这个注解表明 bean 的属性必须在配置的时候设置,通过一个 bean 定义的显式的 属性值或通过自动装配,若@Required 注解的 bean 属性未被设置,容器将抛出 BeanInitializ ...

  9. python学习笔记(七)——内置函数

    builtins.py模块,是python的内建模块,在运行时会自动导入该模块.在该模块中定义了很多我们常用的内置函数,比如print,input 等. 在 builtins.py 模块中给出如下注释 ...

  10. 理解feof与EOF

    feof(feof msdn) feof用于判断文件结尾.头文件<cstdio>.使用方法是feof(fp),fp为指向需要判断的文件的指针.如果不到文件结尾,返回0值:如果是文件结尾,返 ...