Skip to content

多图联动

同步协议传递视口中心日期,而不是复制像素滚动值,因此不同宽度和不同数据范围的图表仍能对齐同一时间。sync 支持 nonescrollviewall

Vue

vue
<YgGantt group-id="release-plan" sync="all" :tasks="productTasks" />
<YgGantt group-id="release-plan" sync="all" :tasks="launchTasks" />

sync 改为 none 后,每个实例保留自己的视图、范围和滚动位置:

vue
<YgGantt group-id="release-plan" sync="none" :tasks="productTasks" />

React

tsx
<YgGantt groupId="release-plan" sync="all" tasks={productTasks} />
<YgGantt groupId="release-plan" sync="all" tasks={launchTasks} />

React 在原生滚动事件中发布日期锚点,接收端直接更新滚动位置,不等待下一次 React 渲染。

Flutter

Flutter 通过共享 YgGanttLinkGroup 联动:

dart
final group = YgGanttLinkGroup();

YotsubaGantt(
  tasks: productTasks,
  linkGroup: group,
  syncMode: YgSyncMode.all,
)

YotsubaGantt(
  tasks: launchTasks,
  linkGroup: group,
  syncMode: YgSyncMode.all,
)

同一个联动组可以只同步滚动或只同步维度;不传联动组时实例完全独立。每次更新携带来源标识,不会回环广播。

以 MIT License 开源