官方相关的文档链接
http://dojotoolkit.org/documentation/tutorials/1.10/understanding_widgetbase/
题记:
最近在了解DOJO 的时候, 自定义了一个类继承BorderContainer 开始的时候我之间在他的初始化方法中
constructor:function(){ this.initContent(); },
我想通过 initContent 来初始化改面板的内容, 提示一直失败, 很明显我对于widget的生命周期的重要性没有发现, 说白了就是切面与织入
生命周期 创建过程
1. constructor
2. postscript
create
postMixInProperties
buildRendering
postCreate
3. tartup
生命周期主要分3个阶段 主要负责的业务是:
1. 使用运行环境中和默认值结合配置 初始化widget
2. 生成可视化的DOM结构
3. widget显示的位置
4. 处理一些显示时候的业务逻辑
主要方法:开放用户实现
postCreate:
这个方法就是当widget一切准备完毕之后 插入你想做的事情
startup()
该方法定义了该widget已经被加入到document对象之后的操作
在Dijit一系列生命周期中,另一个重要方法是启动方法startup. 这个方法会在DOM节点被创建并添加到网页之后执行,同时在这个方法也会等待当前小部件中所包含的子控件被创建并正确启动之后才执行。
注意: 当你用编程的方法创建一个小部件时,记得一定要调用它的startup()方法。很多开发者常犯的错误就是仅仅创建了小部件对象却忘记调用startup(),结果就会导致小部件在页面上无法正确显示。
销毁相关的生命周期
[widget].destroy();
[widget].destroyDescendants();
[widget].destroyRecursive();
[widget].destroyRendering();
[widget].uninitialize();
在开发自定义小部件时,你需要覆写[widget].uninitialize 方法,在其中释放你所使用的资源. Dijit框架会自动的负责销毁该Widget所使用的DOM节点,以及大部分的对象.