SuperAPI AI 工具集

reusable-components

前端与建站

查看项目

更新于 10-16 04:33

技能介绍

这是一个用于指导智能体在 Vaadin 25 Flow 中把视图结构化为可复用组件的技能,适用于“structure a view”等请求。查询具体 API 时应使用 Vaadin MCP 工具(search_vaadin_docs、get_component_java_api),并将 vaadin_version 设为 "25"、ui_language 设为 "java";需要精确 Java API 签名或源码时,用 javadoc MCP 从 Maven Central 读取。

何时拆分组件:视图超过约 200 行、存在内聚组件簇、模式重复出现、或某区块拥有独立状态时。

基类选择:默认用 Composite<T>,它隐藏根组件 API,只暴露显式定义的方法;仅在需要扩展现有组件完整 API 时才继承该组件。代表可编辑值供 Binder 使用时用 AbstractField<C, V>。

组件 API:暴露意图而非实现,让非法状态不可表达,遵循 Vaadin 约定(setValue/getValue、setLabel、setEnabled/setReadOnly、addXxxListener),可复用组件使用类型化事件。

通信方式:父到子用 setter 或方法调用;子到父用自定义 ComponentEvent;多个子组件共享同一状态时可用 signals;一次性组件可用 Runnable 或 Consumer<T> 回调。亦可用具名插槽的包装组件模式。

生命周期:onAttach() 做需要 DOM 的初始化,onDetach() 清理,避免内存泄漏。可选择性实现 HasSize、HasComponents、HasText、HasEnabled、HasTheme 等 mixin 接口。

最佳实践:先写视图再按需拆分,优先 Composite,保持组件职责单一,不暴露内部组件,并对可复用组件做隔离测试。