官方相關的文檔連接
http://dojotoolkit.org/documentation/tutorials/1.10/understanding_widgetbase/ 編程
題記:
最近在瞭解DOJO 的時候, 自定義了一個類繼承BorderContainer 開始的時候我之間在他的初始化方法中 框架
constructor:function(){
this.initContent();
},
我想經過 initContent 來初始化改面板的內容, 提示一直失敗, 很明顯我對於widget的生命週期的重要性沒有發現, 說白了就是切面與織入 post
生命週期 建立過程
1. constructor
2. postscript
create
postMixInProperties
buildRendering
postCreate
3. tartup ui
生命週期主要分3個階段 主要負責的業務是: this
1. 使用運行環境中和默認值結合配置 初始化widget
2. 生成可視化的DOM結構
3. widget顯示的位置
4. 處理一些顯示時候的業務邏輯
主要方法:開放用戶實現
postCreate: spa
這個方法就是當widget一切準備完畢以後 插入你想作的事情
code
startup()
該方法定義了該widget已經被加入到document對象以後的操做
在Dijit一系列生命週期中,另外一個重要方法是啓動方法startup. 這個方法會在DOM節點被建立並添加到網頁以後執行,同時在這個方法也會等待當前小部件中所包含的子控件被建立並正確啓動以後才執行。
注意: 當你用編程的方法建立一個小部件時,記得必定要調用它的startup()方法。不少開發者常犯的錯誤就是僅僅建立了小部件對象卻忘記調用startup(),結果就會致使小部件在頁面上沒法正確顯示。
銷燬相關的生命週期
[widget].destroy();
[widget].destroyDescendants();
[widget].destroyRecursive();
[widget].destroyRendering();
[widget].uninitialize();
在開發自定義小部件時,你須要覆寫[widget].uninitialize 方法,在其中釋放你所使用的資源. Dijit框架會自動的負責銷燬該Widget所使用的DOM節點,以及大部分的對象.