g6/docs/api/Shape.zh.md
2019-11-08 19:43:55 +08:00

2.9 KiB
Raw Blame History

title order
Shape 7

Shape API都是在自定义节点registerNode或自定义边registerEdge的过程中需要部分实现或复写的方法。

**友情提示:**以下属性和API方法全部用于自定义节点和边时候使用即作为G6.registerNode / G6.registerEdge的第二个参数中的方法使用。

用法

import G6 from '@antv/g6'
G6.registerNode('nodeName', {
  draw(cfg, group) {
    // 定义的其他方法都可以在draw里面调用 如 drawShape、drawLabel 等。
    this.drawShape()
    const labelStyle = this.getLabelStyle(cfg)
    // ...
  },
  drawShape(cfg, group) {
    // 
  },
  getLabelStyle(cfg) {
    // 根据业务返回 label 的样式
    return {}
  },
  update(cfg, item) {
    // 更新绘制的元素

  }
}, 'circle')

属性

itemType

元素类型目前支持node、edge后续可能会支持group。

labelPosition

文本相对于图形的位置默认值为center。

  • 当itemType为node时labelPosition值包括top、bottom、left、right和center
  • 当itemType为edge时labelPos值包括start、end和center。

labelAutoRotate

只有在 registerEdge 时有用。

文本是否跟着线自动旋转默认值为false。

提示edge特有。

绘制

绘制部分四个API的参数完全相同参数说明部分参考draw()方法。

draw(cfg, group)

绘制节点和边包括节点和边上的文本返回图形的keyShape。

参数

名称 类型 是否必选 描述
cfg object true 节点或边的配置项
group G.Group true 节点或边的容器

afterDraw(cfg, group)

绘制完成以后的操作用户可继承现有的节点或边在afterDraw()方法中扩展图形或添加动画。

更新

update(cfg, item)

更新节点或边,包括节点或边上的文本。

参数

名称 类型 是否必选 描述
cfg object true 节点或边的配置项
item G6.Item true 节点或边的实例

afterUpdate(cfg, item)

更新完以后的操作,如扩展图形或添加动画。

shouldUpdate(type)

是否允许更新。

参数

名称 类型 是否必选 描述
type string true 元素类型node或edge

返回值

  • 返回值类型boolean
  • 返回true则允许更新否则不允许更新。

setState(name, value, item)

设置元素的状态主要是交互状态业务状态请在draw()方法中实现。单图形的节点仅考虑selected、active状态有其他状态需求的用户可以复写该方法。

参数

名称 类型 是否必选 描述
name string true 状态名称
value boolean true 状态是否可用为true时可用否则不可用
item G6.Item true 节点或边的实例