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. manjaro下使用scrcpy安卓设备投屏

    scrcpy 安卓版本要大于等于 5.0 安装scrcpy及安卓工具包 yay -S scrcpy-git android-tools 打开手机 开发者模式->USB调试,将手机通过数据线连接电 ...

  2. Redis数据结构详解(2)-redis中的字典dict

    前提知识 字典,又被称为符号表(symbol table)或映射(map),其实简单地可以理解为键值对key-value. 比如Java的常见集合类HashMap,就是用来存储键值对的. 字典中的键( ...

  3. Spring由哪些模块组成?

    以下是Spring 框架的基本模块: Core module Bean module Context module Expression Language module JDBC module ORM ...

  4. Java 中,抽象类与接口之间有什么不同?

    Java 中,抽象类和接口有很多不同之处,但是最重要的一个是 Java 中限制一个 类只能继承一个类,但是可以实现多个接口.抽象类可以很好的定义一个家族类 的默认行为,而接口能更好的定义类型,有助于后 ...

  5. 9_状态观测器设计_Linear Observer Design_Matlab_Simulink建模(上)

  6. css布局中左侧固定右侧自适应

    float 单一层浮动法左侧固定成100px; 则核心代码 左侧:width:100px;float:left; 右侧 width:auto;margin-left:100px;绝大浏览器是没有任何问 ...

  7. 在linux环境下安装VMtools(成功)

    想在主机和虚拟机之间互相复制文件吗? 想更加方便的联系主机和虚拟机吗?  就安装VMtools吧 其实,在linux下安装VMtools 是非常的简单,只要简单地几步就行了! 第一步:打开虚拟机,在左 ...

  8. 你可以说出export export default || model.exports exports 的区别吗(一)

    一.前言: 用模块写代码,为什么要用模块来写代码:ES6之前,在js中定义的一切,都是共享一个全局作用域的,随着web应用变得复杂,这样做会引起如:命名冲突和安全问题.于是引入了模块. 二.清楚一个概 ...

  9. C#编写一个计算器

    编写一个计算器,练习在窗体上添加控件.调整控件的布局,设置或修改控件属性,编写事件处理程序的方法. 代码: using System; using System.Collections.Generic ...

  10. ubantu系统之jdk切换使用

    安装 jdk7: $ sudo apt-get update $ sudo apt-get install openjdk-7-jdk 安装 jdk1.8:sudo add-apt-repositor ...