JointJS与vue集成初体验

将 JointJS 添加到 Vue 项目中

安装需要的包

npm 方式

npm install jointjs

yarn 方式

yarn add jointjs

在 vue 中使用 jointjs

<template>
    <div class="canvas" ref="canvas"></div>
</template>

<script>
import * as joint from 'jointjs'
export default {
  data () {
    return {
      paper: null
    }
  },
  mounted() {
    this.init()
  },
  methods: {
    init() {
      let graph = new joint.dia.Graph

      this.paper = new joint.dia.Paper({
        el: this.$refs.canvas,
        model: graph,
        width: 600,
        height: 100,
        gridSize: 1
      })

      let 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)

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

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

<style>

</style>

效果图:
在这里插入图片描述
如果我们想给 画布 paper 添加网格背景的话
先引入 css 样式

// 显示网格背景颜色需要引入样式
import 'jointjs/dist/joint.css'
...
this.paper = new joint.dia.Paper({
  el: this.$refs.canvas,
  model: graph,
  width: 600,
  height: 100,
  gridSize: 10, // 网格大小
  drawGrid: true, // 显示网格
  background: {
    color: 'rgba(0, 255, 0, 0.3)'
  }
})
...

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值