问题:
在 ZK 中,当使用自定义组件时,在生命周期中构建组件内容的最佳时间是什么时候(任意复杂)。也就是说,我们什么时候可以安全地假设我们拥有视图中的所有数据,但无需等待太久。
详细信息:
在 ZK 中,我可以创建一个自定义组件MyCoolComponent
:
package my.package;
public class MyCoolComponent extends Div {
private String title;
public MyCoolComponent() {
Selectors.wireVariables(this, this, Div.class);
Selectors.wireComponents(this, this, false);
Selectors.wireEventListeners(this, this);
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
// When is the correct time to call this function?
public void initializeComponent() {
appendChild(new Label(title));
// arbitrarily complex initialization follows ..
}
}
我可以在 zul 文件中使用我的自定义组件,如下所示:
<?component name="coolcomponent" class="my.package.MyCoolComponent" ?>
<zk>
<coolcomponent id="cool" height="200px" title="Sean is Cool" />
</zk>
现在,当Component
使用它时,我想添加 children Components
,例如,通过调用 in 中的initializeComponent
函数MyCoolComponent
。
在我们的世界中,我们被教导在函数的生命周期阶段Composers
处理所有此类工作。像这样的创造者也是如此吗?如果是这样,最好的(阅读:高效、安全、可读)方法是什么?我觉得为活动附加一个很草率。有什么想法吗?After Compose
doAfterCompose
Component
@Listen
onRender