Vaadin 23 延迟加载详细信息组件

ale*_*oid 2 vaadin vaadin-flow vaadin23

我喜欢Vaadin 详细信息组件。但看起来它总是预先渲染的。是否可以将Details组件变成延迟加载模式?

我想在用户展开面板时呈现详细信息内容。可以用Details组件来实现吗?如果不是,可以使用什么来实现这种行为?

Kno*_*bie 9

详细信息不支持组件的延迟加载,但您可以使用addOpenedChangeListener它来解决此问题。使用像内容一样的占位符组件div,一旦使用 open=true 触发监听器,就将 div 替换为真实组件。请记住,用户可以多次打开/关闭详细信息。您必须跟踪用户是否已经打开它/您的内容是否已渲染一次,这样就不会重新创建。

  • 受这个问题的启发,我在 https://cookbook.vaadin.com/lazy-details 中创建了一个示例。如果你想在每次展开时刷新,那么你可以从“if”中删除“isAttached()”检查 (3认同)
  • 您只需再次调用 setContent 即可,旧内容会自动删除。 (2认同)