有人可以提供有关UI5控件默认事件生命周期的更详细说明吗?我知道文档中有这个页面概述了控件生命周期,但是,我认为它非常简短,需要更详细的内容.有人可以列出控件事件的顺序并解释每个事件的作用吗?
csc*_*uff 21
你是绝对正确的.控件生命周期和实现细节的详细信息非常隐藏在文档中.我会试着总结一下我对你的理解.
控件的生命周期主要由以下因素决定:
下面是一个示例实现,其中包含一些针对不同钩子的示例用法:
sap.ui.core.Control.extend("a.sample.Control", {
init : function() {
// instantiate a sub-control
this._btn = new sap.m.Button();
},
onBeforeRendering : function() {
// deregister a listener via jQuery
this.$("subelement").off("click", this.subElementClick);
},
onAfterRendering : function() {
// register a listener via jQuery on a sub-element
this.$("subelement").on("click", this.subElementClick);
},
subElementClick : function() {
// do stuff
},
exit : function() {
// clean up sub-controls and local references
this._btn.destroy();
delete this._btn;
}
});
Run Code Online (Sandbox Code Playgroud)
为什么我不应该在构造函数中执行初始化操作?
有一个基本的UI5构造ManagedObject.它为您"准备"您的UI5对象,然后调用您的init函数.这意味着在您的init中,所有设置都已经应用于您,您可以像往常一样访问属性和聚合.
我为什么不打电话给投降?
从某种意义上说,SAPUI5渲染是智能的,它可以对排队的重新渲染进行分组和优化.因此,您不应该rerender直接调用,而是使用invalidate标记控件进行重新渲染.
HF
克里斯