G6 3.4 又双叒叕来啦

# G6 3.4 又双叒叕来啦

![发布稿 - G6.jpg](https://user-gold-cdn.xitu.io/2020/3/10/170c31011ac83b26?w=1020&h=476&f=jpeg&s=58318)

> AntV G6 是一款开源的图可视化引擎,专注于图可视化及图分析。

> 欢迎关注和 **Star** 我们的 GitHub:[https://github.com/antvis/G6](https://github.com/antvis/G6)

> 官网:[https://g6.antv.vision/zh/](https://g6.antv.vision/zh/)

上个月,性能强悍的 TS 版 G6 3.3 刚刚与大家见面。为解决长期以来的用户痛点,我们冒着秃头的风险,光速迭代开发。仅时隔一个月,G6 3.4 又来啦。别怕,我发誓,完全兼容 v3.3!没有最好,只有更好!

## SVG is Coming back!

为强化性能, G6 3.3 进行了底层渲染引擎的全面升级,但暂时仅支持了 Canvas 版本。不少老用户抱怨,可爱的 SVG 版本上哪儿去了?这次,G6 3.4 重新支持了 SVG。交互、动画、布局,统统不成问题。不仅可以使用 circle、rect、path 等基础图形,自定义节点/边还支持使用 DOM 元素!小伙伴们又可以和 SVG 愉快地玩耍啦。来,一睹为快!

![dom-node.gif](https://user-gold-cdn.xitu.io/2020/3/10/170c30f94d491e50?w=672&h=594&f=gif&s=878848)

```javascript

// 自定义节点,使用 DOM

G6.registerNode('dom-node', {

  draw: (cfg, group) => {

    return group.addShape('dom', {

      attrs: {

        width: cfg.size[0],

        height: cfg.size[1],

        html:

          `<div style="background-color: #fff; border: 2px solid #5B8FF9; border-radius: 5px; width: ${cfg.size[0]-5}px; height: ${cfg.size[1]-5}px; display: flex;">

            <div style="height: 100%; width: 33%; background-color: #CDDDFD">

              <img style="line-height: 100%; padding-top: 6px; padding-left: 8px;" src="https://gw.alipayobjects.com/mdn/rms_f8c6a0/afts/img/A*Q_FQT6nwEC8AAAAAAAAAAABkARQnAQ" width="20" height="20" /> 

            </div>

            <span style="margin:auto; padding:auto; color: #5B8FF9">${cfg.label}</span>

          </div>`

      }

    });

  }

}, 'single-node');

```

## 状态管理新篇章

G6 中,节点/边的状态(State)用于反馈用户交互和数据变化。通过状态,可以将「交互/数据变化」与视图中「元素的样式变化」快速关联。

> 举个🌰:鼠标进入节点,该节点为 hover 状态,并被高亮;离开节点,该节点为非 hover 状态,并复原样式。

#### 令人头秃的过往

在具体的业务开发中,我们需要的不仅仅是简单的 hover、select 等状态,当有多种状态时候,我们的代码往往会像下面这样👇:

![image.png](https://user-gold-cdn.xitu.io/2020/3/10/170c310db59f070a?w=1240&h=808&f=png&s=985844)

默认情况下,状态只会与节点/边的 [keyShape](https://g6.antv.vision/zh/docs/manual/middle/elements/shape-keyshape) 相关联。然而,很多时候,我们希望能够同时更新节点/边上的其他图形。这时候,需要这样操作👇:

![image.png](https://user-gold-cdn.xitu.io/2020/3/10/170c3113b18c8514?w=1118&h=1132&f=png&s=1405935)

当然了,如果仅仅是上面这种问题,我都能忍。![image.png](https://user-gold-cdn.xitu.io/2020/3/10/170c3117df86e228?w=195&h=258&f=png&s=46232)

但是,G6 之前的版本竟然还不支持多值状态、互斥状态。举个🌰:一个节点代表一个人,有“健康”、“疑似”、“确诊”、“死亡”四种状态。这四个状态是相互独立的,某个节点上不可能同时存在其中的任何两种状态。但在之前的版本中,由于状态是二值的,如下设置方法会让四种状态同时存在:

![image.png](https://user-gold-cdn.xitu.io/2020/3/10/170c311e6a7d4f0a?w=1358&h=582&f=jpeg&s=133754)

#### Let's Move on!

上面这些令人头秃的需求你是不是也经常遇到呢?如果有,G6 3.4 你值得拥有!G6 3.4 支持:

- **快速设置目标状态**:当一个节点/边上已被设置了大量不同状态后,要再设置一个新状态时,可以快速将之前所有状态清除;

- **多值:**即一个状态量存在多个不同的值,如节点代表人,有“健康”、“疑似”、“确诊”、“死亡”四种状态;

- **互斥**:如 “健康”、“疑似”、“确诊”、“死亡”四种状态中,“死亡”与其他三种就是互斥的,不可能同时存在“健康”和“死亡”两种状态;

- **节点/边中所有子图形的样式更新**:如一个由文本和圆组成的节点,状态变化时不仅能设置圆的样式,也可以设置文本的样式;

- **更新状态样式**:当更新节点的样式时,能够同时更新状态的样式。

![状态效果.gif](https://user-gold-cdn.xitu.io/2020/3/10/170c31225afd1734?w=800&h=225&f=gif&s=216273)

状态相关详情请看:G6 状态管理的正确姿势【外网链接】。

![image.png](https://user-gold-cdn.xitu.io/2020/3/10/170c3125b25c4b12?w=1076&h=1178&f=png&s=1085539)

## 预告

告诉你一个小秘密,G6 3.5 将重新设计节点分组机制,敬请期待!

--------------------------------------------------------------------------------

再告诉你一个大秘密……  Star [G6 的 GitHub](https://github.com/antvis/g6),你就有 100% 机会赢得……………………一个开源的、免费的、优秀的图可视化引擎!

> AntV G6 是一款开源的图可视化引擎,专注于图可视化及图分析。

> 欢迎关注和 **Star** 我们的 GitHub:[https://github.com/antvis/G6](https://github.com/antvis/G6)

> 官网:[https://g6.antv.vision/zh/](https://g6.antv.vision/zh/)

![g6-gallery.png](https://user-gold-cdn.xitu.io/2020/3/10/170c31281e90d07f?w=2944&h=2720&f=png&s=2540701)

## 新成员

AntV 又添加新成员了,专注于图编辑的 [X6](https://github.com/antvis/x6) 正式亮相,详见[图编辑引擎 X6 让你们久等了](https://www.yuque.com/antv/blog/x6-preview-release),欢迎试用,欢迎 [Star](https://github.com/antvis/x6)。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容