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. FrameScan CMS漏洞扫描

    工具简介 GithubL:https://github.com/qianxiao996/FrameScan FrameScan是一款python3编写的简易的cms漏洞检测框架,支持多种检测方式,支持 ...

  2. ModSecurity的规则

    一.ModSecurity的规则 基本格式 SecRule VARIABLES OPERATOR ACTIONS SecRule:ModSecurity主要的指令,用于创建安全规则. VARIABLE ...

  3. maven常用命令含义

    今天在开发过程中,对一个mapper.xml文件的sql进行了改动,重启tomcat后发现没有生效,首先考虑是不是远程服务开启着,导致代码没有走本地,确认远程服务是关闭的,的确是本地修改没有生效,于是 ...

  4. Java 中 Semaphore 是什么?

    Java 中的 Semaphore 是一种新的同步类,它是一个计数信号.从概念上讲,从 概念上讲,信号量维护了一个许可集合.如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可.每 ...

  5. 为什么需要域驱动设计DDD?

    我们需要 DDD 的因素 – 微服务面试问题

  6. 区分 BeanFactory 和 ApplicationContext?

    BeanFactory ApplicationContext 它使用懒加载 它使用即时加载 它使用语法显式提供资源对象 它自己创建和管理资源对象 不支持国际化 支持国际化 不支持基于依赖的注解 支持基 ...

  7. 学习ELK日志平台(二)

      一.ELK介绍 1.1 elasticsearch 1.1.1 elasticsearch介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索 ...

  8. 运筹学之"连通图"和"最小枝杈树"和"最短路线问题"

    一.连通图 必须每个点都有关系 图1 不算连通图 图2含有圈v1,v2,v5,可优化 图3就是所需的连通图 注意:图>连通图>树 二.最小枝杈树 获取是所有节点的最小值,只要是连通图就好, ...

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

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

  10. python中类变量和实例变量的区别

    类变量:可在类的所有实例之间共享的值(也就是说,它们不是单独分配给每个实例的).实例变量:实例化之后,每个实例单独拥有的变量. class student(): age = 0 name = 'stu ...