首页 > 其他分享 >vue2 antv x6 入门 (一)画布、节点、边

vue2 antv x6 入门 (一)画布、节点、边

时间:2024-09-14 16:14:19浏览次数:1  
标签:渲染 graph antv attrs vue2 x6 节点

安装

# npm
npm install @antv/x6 --save

# yarn
yarn add @antv/x6

 

1. 初始化画布

<div id="container"></div>
import { Graph } from '@antv/x6'

const graph = new Graph({
  container: document.getElementById('container'),
  width: 800,
  height: 600,
  background: {
    color: '#F2F7FA',
  },
})

 

2、渲染节点和边

X6 支持 JSON 格式数据

该对象中 

nodes 代表节点数据,

edges 代表边数据,

可以使用 attrs 属性来定制节点和边的样式(可以类比 CSS)。

 

3、画布添加节点、边

 

创建data1.js文件

const data = {
  nodes: [
    {
      id: 'node1',  // id唯一标识
      shape: 'rect',
      x: 40,
      y: 40,
      width: 100,
      height: 40,
      label: 'hello',
      attrs: {
        // body 是选择器名称,选中的是 rect 元素
        body: {
          stroke: '#8f8f8f', //边的颜色
          strokeWidth: 1, // 边线宽
          fill: '#fff', // 背景颜色,跟选择相关,如果是文字fill代表是字体颜色
          rx: 6, // 圆角弧数
          ry: 6, // 圆角弧数
        },
      },
    },
    {
      id: 'node2',
      shape: 'rect',
      x: 160,
      y: 180,
      width: 100,
      height: 40,
      label: 'world',
      attrs: {
        body: {
          stroke: '#8f8f8f',
          strokeWidth: 1,
          fill: '#fff',
          rx: 6,
          ry: 6,
        },
      },
    },
  ],
  edges: [
    {
      shape: 'edge',
      source: 'node1',
      target: 'node2',
      label: 'x6',
      attrs: {
        // line 是选择器名称,选中的边的 path 元素
        line: {
          stroke: '#8f8f8f',
          strokeWidth: 1,
        },
      },
    },
  ],
}

export default data

 

页面使用   json数据

 

graph.fromJSON(data) // 渲染元素
graph.centerContent() // 居中显示

 

效果

 页面代码

 
<template>
  <div>
    <div id="container"></div>
  </div>
</template>
<script>
import { Graph } from '@antv/x6'
import dataJSON from './data1'
export default {
  name: 'index2Page',
  data() {
    return {
      graph: null
    }
  },
  mounted() {
    this.initGraph()
  },
  methods: {
    initGraph() {
      this.graph = new Graph({
        container: document.getElementById('container'),
        width: 800,
        height: 600,
        background: {
          color: '#F2F7FA'
        }
      })
      console.log(dataJSON)
      this.graph.fromJSON(dataJSON) // 渲染元素
    this.graph.centerContent() // 居中显示
} } } </script>

 

 

这里是重点:

X6 支持使用 SVGHTML 来渲染节点内容,在此基础上,我们还可以使用 ReactVue 组件来渲染节点,这样在开发过程中会非常便捷。在拿到设计稿之后,你就需要权衡一下使用哪一种渲染方式,可以参考下面的一些建议:

  • 如果节点内容比较简单,而且需求比较固定,使用 SVG 节点
  • 其他场景,都推荐使用当前项目所使用的框架来渲染节点

 

 

loading......

 

antx6---参考官网

 

标签:渲染,graph,antv,attrs,vue2,x6,节点
From: https://www.cnblogs.com/congxueda/p/18414243

相关文章

  • Vue2/Vue3中编程式路由导航实践总结
    【1】Vue2编程式路由导航①router.push除了使用<router-link>创建a标签来定义导航链接,我们还可以借助router的实例方法,通过编写代码来实现。router.push(location,onComplete?,onAbort?)注意:在Vue实例内部,你可以通过$router访问路由实例。因此你可以调用this.$router......
  • 尤雨溪推荐的拖拽插件,支持Vue2/Vue3 VueDraggablePlus
    大家好,我是「前端实验室」爱分享的了不起~今天在网上看到尤雨溪推荐的这款拖拽组件,试了一下非常不错,这里推荐给大家。说到拖拽工具库,非大名鼎鼎的的Sortablejs莫属。它是前端领域比较知名的,且功能强大的工具。但我们直接使用Sortablejs的情况很少,一般都是使用基于它的......
  • vue2 + scss 全局引入 变量使用
    百度以及时AI帮助说的配置方式都大差不差,但是我的总是报错,意思就是变量找不到,报错如下Foraguideandrecipesonhowtoconfigure/customizethisproject,<br> 然后AI和文章写的vue.config.js的配置内容基本如下module.exports={css:{loaderOp......
  • vue2 webpack打包配置
    序言最近在优化之前做的项目,看到打包后的文件夹,出现很多不需要的文件,想着应该是打包出现了问题,之前没时间优化,现在来看看优化项吧。RemovedPluginError:webpack.optimize.CommonsChunkPluginhasbeenremoved,pleaseuseconfig.optimization.splitChunksinstead以......
  • depends.exe在x64下使用卡的问题
    Ifdepends.exe(DependencyWalker)HangsDependencyWalker isprobablythebestutilthatbuildsahierarchicaltreediagramofalldependentmodulesofwindows .exe or .dll files.Itcanbeusefulfordebugging,troubleshooting,oroptimizingyourappl......
  • vue2动态生成(绘制)图形验证码(验证码图片)
     方案1:js绘制条形验证码 参考文档:https://blog.csdn.net/LOVE_mingjing/article/details/130622848 utils文件夹下新建GVerify.js文件:functionGVerify(options){//创建一个图形验证码对象,接收options对象为参数this.options={//默认options参数值......
  • 【北京迅为】iTOP-i.MX6开发板使用手册第四部分固件编译第十四章非设备树Android4.4系
     可根据用户需求更换,百变定制,高端产品无忧! 迅为IMX6Q兼容四核商业级、双核商业级、四核工业级、更可提供i.MX6Q家族PLUS版本核心板。核心板采用十层PCB沉金盲埋设计,更能保证电磁兼容与系统稳定。 公众号:迅为电子 -----------------------------------------   ......
  • 前端vue2 常用的函数
    1、在el-menu开启路由模式,default-active使用动态值等于当前路由,就需要用:default-active="$route.path" 2、阿里巴巴矢量图icfont的使用 ①将自己需要的图标下载到矢量库对应的项目文件中 ②更新对应的css代码,点击css代码链接,更新到本地去 ③使用<iclass="iconfont......
  • 内存延迟对Zen5游戏性能影响有多大!为何首发评测我们会用技嘉X670E AORUS XTREME主板
    一、前言:为什么我们会一直使用技嘉X670E主板做锐龙处理器首发评测很多同学一直好奇,为什么我们在各种锐龙平台的评测中都会优先使用技嘉X670主板?也有同学很疑惑,为什么海外媒体的游戏性能测试,锐龙79700X连i7-14700K都打不过,而在我们这里却与i9-14900K旗鼓相当?主要原因是Zen5架构......
  • vue2+swiper 纵向弧形滚动效果
    很垃圾的弧形轮播效果,其实不算弧形,只是一个爬坡效果,最终否了但保留一下配置项的代码。。方案1:swiperOptions:{direction:"vertical",spaceBetween:-80,slidesPerView:5,loop:true,centeredSlides:true,//当前的activesl......