天天看點

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

繼續閱讀