質問:
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
initializeComponent
MyCoolComponent
の世界でComposers
は、この種の作業はすべて関数After Compose
を使用してライフサイクルのフェーズで処理するように教えられていdoAfterCompose
ます。Component
このように作成されたものにも同じことが当てはまりますか?もしそうなら、そうするための最良の(読む:効率的で、安全で、読みやすい)方法は何ですか?@Listen
イベント用の を付けるのonRender
が雑な気がします。何かご意見は?