Dojo学习笔记(二十):理解_WidgetBase
如果你使用过dojo早期的版本,你可能对dijit/_Widget模块熟悉。虽然dijit/_Widget目前仍然存在,但是它经继承自_WidgetBase。在你从底层开始创建自定义小部件的时候,目前最好是直接继承_WidgetBase,dijit/_Widget很可能在2.0的版本中被淘汰掉。 理解Dijit系统的关键在于对小部件的生命周期的理解,小部件生命周期是从一个小部件被设计到这个小部件能够被你的应用程序完全可引用,一直到小部件和dom元素的销毁。 _Widget和_WidgetBase类前面都有一个“_”,表示这些类不能直接实例化使用,只能被用作declare声明类的基类。 每个以_WidgetBase作为父类的小部件在实例化过程中都要调用几个方法,下面是这些方法调用的顺序列表:
这些方法用来处理如下一些事务:
postCreate()方法 在小部件的DOM准备好并插入到页面后,调用此方法。对于一个开发者来说,在这个小部件呈现在用户面前之前,这个方法是你执行最后的一些修改的主要地方,例如设置一些自定义属性等等。在开发一个自定义小部件的时候,大多数自定义信息会写在这个方法里,但不是全部。如果小部件中包含子小部件,若需要访问子小部件,需要使用startup()方法。 startup()方法 在Dijit生命周期里,可被认为是第二重要的方法是startup方法。当小部件及其子小部件被创建好之后,调用该方法。若小部件是通过声明方式创建的,startup方法是通过dojo/parser方法自动调用的。倘若小部件是由编程方式创建的,必须调用startup()方法。 Tear-down方法 除了实例化方法之外,dijit/_WidgetBase还定义了一些销毁函数,下面按被调用的顺序列出:
当你在编写自定义小部件的时候,销毁操作要写在destroy()方法里,记得不要忘记调用this.inherited(arguments)。dijit本身已经为你监测文档节点和大部分对象,可以用上述销毁方法来处理过时的对象和节点。 尽管destroy()方法是小部件的主要的销毁方法,但是当你想彻底地销毁一个小部件包括它的子小部件的时候,你应该调用destroyRecursive(),这将确保销毁这个小部件及其它的子元素。 http://dojotoolkit.org/documentation/tutorials/1.10/understanding_widgetbase/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails – Cloud9 postgres
- PostgreSQL 角色与用户管理介绍
- Oracle的默认日期格式为YYYY-MM-DD,WHY?
- Swift 2.0学习笔记(Day 25)——类和结构体定义
- PostgreSQL 编译开关disable-float4-byval 与disable-fl...
- ruby – “安装charlock_holmes时出错”:“icu required”
- C# 动态生成word文档
- vb.net 教程 3-4 窗体编程 公共控件10 TreeView 1
- 对qucik cocos2dx lua SocketTCP的再一次封装,导入全局实例
- 为什么在Swift 3中默认情况下,闭包需要显式的“self”?