天天看点

Ext架构分析(3)--Widget之父Component:总结

<b>在这里,我们引用Ext Overview中的Component life cycle对组件的功能进行相应的总结:</b>

[list=1]

<b>配置项对象生效:</b>

组件对象的构造器会把全部的配置项传入到其子类中去,并且进行下列所有的步骤。

<b>组件的底层事件创建</b>

这些事件由组件对象负责触发。事件有enable, disable, beforeshow, show, beforehide, hide, beforerender, render, beforedestroy, destroy

<b>组件在组件管理器里登记</b>

initComponent这方法总是使用在子类中,就其本身而论,该方法是一个模板方法(template method),用于每个子类去现实任何所需的构造器逻辑(any needed constructor logic)。首先会创建类,然后组件对象各层次里面的每个类都应该调用superclass.initComponent。通过该方法,就可方便地实现(implement),或重写(Override)任意一层构造器的逻辑。

<b>加载插件(如果有的话)</b>

如果该组件有指定任何插件,这时便会初始化。

<b>渲染组件(如果必须的话)</b>

<b>渲染过程 Rendering</b>

<b>触发beforerender事件</b>

这是个可取消的事件,指定的句柄(handler)通过返回false可阻止组件进行渲染

<b>设置好容器</b>

如果没有指定一个容器,那么将使用位于DOM元素中组件的父节点作为容器。

<b>调用onRender方法 </b>这是子类渲染最重要的一个步骤,由于该方法是一个模板方法(template method),用于每个子类去现实任何所需的渲染逻辑(any needed render logic)。首先会创建类,然后组件对象各层次里面的每个类都应调用superclass.onRender。通过该方法,就可方便地实现(implement),或重写(Override)任意一层渲染的逻辑。

<b>自定义的类、样式生效 Custom class and/or style applied</b>

<b>触发render事件 The render event is fired</b>

这是组件通知成功渲染的一个步骤。这时,你可肯定地认为组件的DOM元素是可用的了。如果尝试在渲染之前访问组件,会抛出一个不可用的异常。

<b>调用了afterRender方法 The afterRender method is called</b>

这是另外一个实现或重写特定所需的“后渲染”逻辑的模板方法。每个子类应调用superclass.afterRender.

<b>组件被隐藏或禁用(如果有的话) The Component is hidden and/or disabled (if applicable)</b>

配置项hidden和disabled到这步生效

<b>所有状态感知的事件初始化(如果有的话) Any state-specific events are initialized (if applicable)</b>

状态感知的组件可由事件声明特殊加载和保存状态。如支持,加入此类的事件。

下一篇: ftp

继续阅读