今天闲着没事,打算要学会自定义组件!..
Extjs的控件和现实世界中的事物有很多相似的地方,都拥有被创建、使用以及销毁这样一个生命周期。
Extjs控件的生命周期大体分为三个阶段:初始化、渲染、销毁。如下图所示:
Extjs控件的生命周期总是以[初始化],开始以[销毁]结束,组件不一定会有[渲染]这一过程。为了更好的了解并运用好生命周期的整个结构,我们必须更详细的去了解这个过程。
如果你打算扩展、组合Extjs控件或者创建自己的插件,掌握组件的生命将非常重要。组件生命周期的整个过程都在基类Ext.Component中有了很好的体现。
第一个阶段:初始化
初始化工作开始于组件的诞生,所有必须的配置设定、事件注册、预渲染处理等都在此时进行。如下图:
让我们一起浏览一下初始化的每一个步骤:
1.应用组件的配置:当我们初始化一个组件的实例时,你传递的组件配置对象包含了所有你想让组件所拥有的功能。这些都是在Ext.Component基类的前几行代码完成的。
2.注册组件基本的事件:每一个继承于Ext.Component的组件都会默认响应一些基本的事件,它们会在执行某些行为之前或之后被触发:enable/disable,show,hide,render,destory,state restore,state save等等。
在执行某些行为之前触发的事件主要用于检查成功返回某些条件之后执行某个逻辑,例如,myPanel.show被调用,它将触发beforeshow事件,和beforeshow事件绑定的方法将会被执行。如果beforeshow事件初始函数返回了false,myPanel将不会show。
3.ComponentMgr 注册:ComponentMgr类会为每一个被实例化的组件产生一个唯一的字符串作为它的ID。你可以在配置信息里,通过传递ID参数到constructor构造器里来复写Ext-generated ID。需要注意的是如果注册的ID有重复值,那么新产生的组件将会覆盖后产的。所以当你打算自己传递ID时一定要保证ID的唯一性。
4.执行initComponent:有许多工作都会在initComponent方法里完成。例如注册自定义的事件、设定data stores、创建子控件等。initComponent可以看做constructor的补充,因此经常用于扩展组件的入口点。
5.初始化plugins:如果在constructor的参数中传递了plugin对象,plugin的init方法将会被调用,同时会将父对象作为参数传递进init方法里。
6.初始化Component状态:如果组件是state-aware的,它将利用全局单例StateManager类注册自己的状态。默认情况下,所有的Component都是State aware的。
代码片段:Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
7.渲染Component:如果在constructor中renderTo或applyTo参数被传递,此时将开始执行渲染,反之组件延迟渲染,知道它的render方法被调用。
转自:http://blog.csdn.net/foreverxyi/article/details/6869296
分享到:
相关推荐
ExtJs组件类的对应表,很好的,分享给大家!!
ExtJS 组件扩展 如何正确使用Extjs---扩展组件的两个层次
包括从基础到深入的EXTjs组件解释,EXTjs实例,EXT核心API详解,Ext.DomQuery类
extjs组件介绍
extjs入门学习,各个组件的使用,包括Observable、Observable、BoxComponent、Container、Panel、Viewport及Window...
这里主要介绍了ExtJS常用组件的样式修改,包括工具栏样式修改、菜单样式修改、树形菜单样式修改、表格样式修改、按钮样式修改等。
ExtJS组件介绍,请关注后续发布,不断更新中
EXTJS 上传组件及示例EXTJS 上传组件及示例EXTJS 上传组件及示例
extjs时间日期选择组件.
非常不错的ext ui的工具,可以通过拖曳的方式来生成ext的组件。代码可以用于学习
extjs各种组件的详细实现及各种扩展归纳总结,包括各种grid,tree,布局,表单,ajax,弹出框等
漂亮的Extjs图片展示组件实例,类似于幻灯片,可直接拿去用,非常不错的哦
丰富的用户级组件,功能使用很强大,丰富的用户级组件,功能使用很强大,丰富的用户级组件,功能使用很强大,丰富的用户级组件,功能使用很强大,丰富的用户级组件,功能使用很强大,丰富的用户级组件,功能使用很强大,...
1、Extjs3.0 常用组件介绍ppt 2、怎样安装开发利器Spket 3、Spket安装包
NULL 博文链接:https://atgoingguoat.iteye.com/blog/626112
Ext编辑组件, 不多说了, 自己用了就知道是不是好用。。 在以后会又能够更好的组件发布的, 会比现在的更好用的
实现对Ext树进行分页的组件,扩展了TreeLaoder和PagingToobar
extjs-form组件配置参数详解 extjs各种组件说明
ExtJS4下拉树组件 ExtJS4下拉树组件