
在前期的文章中我们分享了用 Highcharts Dashboards 的布局引擎Layout、组件Component和数据池DataPool来“搭建”一个静态驾驶舱。但一个静态的驾驶舱是没有灵魂的。传统的联动是怎么做的我们监听A图表的click事件然后手动调用 B 图表的chartInstance.series[0].update(...)。这种方式在组件少的时候还行一旦组件超过 5 个联动的逻辑会变成一团“意大利面条”Highcharts Dashboards 彻底解决了这个问题。它的核心理念是组件之间不直接通信。所有组件只和“数据池DataPool”通信。今天我们就来实战这个“架构级”的联动。核心武器DataModifier (数据修饰器)在 Highcharts Dashboards 中DataModifier 用于在 DataTable 上转换或筛选数据常通过 dataPool 中的 DataConnector 配置。它保留原始数据并提供修改后的数据视图便于组件使用一致、适合展示的数据。DataModifier 可用于数据预处理但组件间的同步联动通常由共享 Connector 和sync配置实现。DataModifier 负责转换或筛选数据例如排序、过滤、生成计算列。组件联动通常由共享 DataConnector 和sync配置实现Modifier 可以先整理共享数据但不是联动机制本身。Modifier 保留原始数据修改后的数据可通过DataTable.getModified()获取。每个 DataTable 可配置一个 modifier需要组合操作时用Chain串联多个 modifier。主要特点每个表只能有一个修饰器每个DataTable只能有一个修饰器但该修饰器可以调用其他修饰器。克隆可用性如果DataModifier修改了DataTable则可以通过DataTable.getModified()方法访问修改后的数据。修饰器类型Chain组合多个修饰器。Filter根据指定条件过滤数据。Invert翻转行和列。Math执行复杂计算。Range限制数据在特定范围内。Sort根据指定字段排序数据。最常用的修饰器就是Filter(过滤器)。Highcharts Dashboards 的联动机制是“状态管理”的思维而不是“DOM 操作”的思维。解耦 (Decoupling)“按钮”KPI和“图表”完全解耦它们都只依赖“数据池”。可维护性 (Maintainable)无论驾驶舱有多复杂数据流向永远是清晰的组件事件 - DataPool - 依赖组件。文章参考Data Modifiers · Data Handling