@逍为(hustcc)

背景

View 是 G2 对画布区域的一个管理容器。通过 view 的嵌套,可以有效的进行 画布区域 的树形递归拆分,最终生成一个画布树结构。

主要满足几类需求:

  1. 分面
    1. rect
    2. list
    3. tree
    4. mirror
  2. 自定义图形
    1. 组合饼图
    2. 业务自定义图形

共享数据

为了方便使用,父子 view 之间会共享一些数据:

  • canvas
  • data
  • theme
  • options
    • scales
    • axes
    • coordinate

也就是在父 view 设置了数据之后,所有子 view 都可以用这份数据,除非子 view 自己重新设置数据。

布局

父子 View 的嵌套布局,主要依赖两个机制:

  • region
  • padding

详见:https://www.yuque.com/antv/g2-docs/btgggq#1WJYO

API

  • view.createView
  1. view.createView(cfg);
  • new View
  1. const v = new View(cfg);
  2. view.views.push(v);

推荐使用第一种写法,可以保证父子 view 的数据共享。