React项目中使用Antv-G6

1.首先我们需要下载相关的依赖

 npm install --save @antv/g6    

2.页面组件中引入G6依赖

import G6 from '@antv/g6';

3.官网选择合适示例:复制核心代码块,dom容器的id值要和核心代码块中的容器属性值一致。
注: 因为初始化graph需要等dom渲染之后,否则找不到container对应div容器。 核心代码块需要放置在created之后的生命函数里, 而不是直接在组件created阶段。
在这里插入图片描述
完整代码:

import React, { useEffect } from 'react';
import G6 from '@antv/g6';
import Hierarchy from '@antv/hierarchy';
import style from './style.less';

export const index = () => {
  useEffect(() => {
    var r = 50;
    var radius = Math.PI;
    var graph = new G6.Graph({
      container: 'mountNode',
      width: window.innerWidth,
      height: window.innerHeight,
      animate: true,
      animateCfg: {
        duration: 1000,
        onFrame: function onFrame(node, ratio, toAttrs: any, fromAttrs: any) {
          var current = radius * ratio;
          var x = fromAttrs.x;
          var y = fromAttrs.y;
          if (fromAttrs.x > toAttrs.x) {
            x = x - r + r * Math.cos(current);
            y += r * Math.sin(current);
          } else {
            x = x + r - r * Math.cos(current);
            y -= r * Math.sin(current);
          }
          return {
            x: x,
            y: y,
          };
        },
      },
    });
    var node1 = graph.addItem('node', {
      id: 'node1',
      x: 500,
      y: 300,
      shape: 'circle',
      style: {
        fill: '#F04864',
        lineWidth: 2,
      },
    });
    var node2 = graph.addItem('node', {
      id: 'node2',
      x: 400,
      y: 300,
      shape: 'circle',
      style: {
        fill: '#40a9ff',
        lineWidth: 0,
      },
    });
    var count = 0;
    setInterval(function() {
      var model = node1.get('model');
      if (count % 2 === 0) {
        node1.get('model').x = 200;
        node2.get('model').x = 100;
      } else {
        node1.get('model').x = 100;
        node2.get('model').x = 200;
      }
      count++;
      graph.refresh();
    }, 1000);
  }, []);
  return <div id={'mountNode'} className={style.mountNode}></div>;
};

export default index;

页面效果:

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值