ExtJS Component 的生命周期

本文转载........

组件有三种类型:基本组件,工具栏组件,表单组件。 下面的每一个阶段都是从 Component 继承下来的类的生命周期中重要的阶段。

第一个阶段:初始化

1、应用配置选项

从 Component 继承下来的类并不需要提供(通常没有提供)一个独立的构造器。

Component 的构造器不仅应用从子类传过来的配置选项,同时它还做了以下的工作。

2、创建事件

任何组件都有 enabled、disable、beforeshow、show、beforehide、hide、bdforerender、render、

beforedesctory、destory 事件,这些事件可以被任何组件调用。

3、在 ComponentMgr 中注册组件实例

这样就可以通过 Ext.getCmp 被获得实例引用。

4、调用 initComponent 方法

这是一个最重要的初始化步骤,它是做为一个模板方法,子类可以按需要重写这个方法。

被创建的类的 initComponent 首先被调用,然后通过组件 提供的 superclass.initComponent 向

上调用。这个方法非常容易被实现,如果需要,你还可以任意覆盖构造器逻辑。

5、状态初始化

如果组件有状态,已保存的状态会被重新加载。

6、加载插件

如果组件有指定插件,则插件会在这时候被初始化。

7、组件呈现

如果有配置 renderTo 或 applyTo,组件会马上被呈现输出,否则,它会被延迟输出,直到组件被显式调用显示,或被它的容器所调用输出。

第二阶段:呈现

1、触发 beforerender 事件

这是一个可取消的事件,如果需要给提供处理函数来阻止组件的继续呈现输出。

2、设置容器

如果没有父容器被指定,默认它的父对象被指定为它的容器。

3、调用 onRender 方法

这是为子类执行呈现工作的一个非常重要的方法,这是一个模板方法,在子类中可以根据需来重写它的实现逻辑。直接被创建的类的 onRender 首先被调用,然后它可以通过superclass.onRender 来调用基类的 onRender 方法。这个方法很容易被重新实现,如果需要你可以在继承关系的任意类中重写这个方法。

4、不隐藏组件

默认,大多数组件都会通过设置像 x-hidden 这个样式来使它隐藏。当 autoShow 设置为true 时,这个隐藏功能的样式会被移除。

5、应用自定义样式

所有的 Component 子类都支持指定 cls 配置属性,通过它可以为 Component 所呈现的HTML 元素指定 CSS 样式。通过添加组件的 cls 属性,使用标准的样式规则,是一个自定义可视组件显示效果的非常完美的方法。

6、render 方法被触发

简单的通知组件已经被成功的呈现了。

7、调用 afterRender

这是另一个模板方法,子类根据逻辑需要可以重新实现或覆盖该方法。所有的子类可以 通过调 superclass.afterRender.来调用父类的方法。

8、组件隐藏或不可用

根据配置选项的值来设置。

9、状态事件被初始化

可以状态化的组件会定义一些事件来指定状态的初始化和保存。如果提供,这些事件会被添加。

 第三阶段:销毁

1、触发 beforedestroy

这是一个可取消的事件,如果需要,可能通过提供事件代理来阻止组件被销毁。

2、调用 beforeDestroy 方法

又一个模板方法,在子类中可以重新实现和调用父类的方法。

3、移除事件监听者(代理)

如果组件已被呈现,则移除它底层的 HTML 元素的事件监听列表,然后将元素从 DOM中移除。

4、onDestroy 被调用

这个还是一个模板方法,在子类可以重新实现。这里需要注意的是,容器类提供了一个 默认的 onDestroy 实现,它会循环销毁它的成员组 。

5、组件实例从 ComponentMgr 中反注册

不可以再通过 Ext.getCmp 获取到对象实例。

6、destroy 事件被触发

这只是一个简单的提醒,表示组件销毁成功。

7、移除 Component 上的事件代理

组件可以独立于元素,自己拥有事件代理,如果存在则移除它们。

时间: 2024-10-17 23:04:06

ExtJS Component 的生命周期的相关文章

【ExtJS】关于Component生命周期

很久以前就学习过extjs的组件生命周期,很久之后,再回头看一看,又增加好多新的认识. extjs组件生命周期大体分为3个阶段:初始化.渲染.销毁. 第一阶段:初始化 初始化工作开始于组件的诞生,所有必须的配置设定.事件注册.预渲染处理等都在此时进行. 1.应用组件的配置: 当初始化一个组件的实例时,传递的组件配置对象包含了希望让组件拥有的所有功能,这些都是在Ext.Component基类的前几行代码完成的. 2.注册事件: 诸如enable/disable,show,hide,render,d

ExtJS关于组件Component生命周期

extjs组件生命周期大体分为3个阶段:初始化.渲染.销毁. 第一阶段:初始化 初始化工作开始于组件的诞生,所有必须的配置设定.事件注册.预渲染处理等都在此时进行. 1.应用组件的配置: 当初始化一个组件的实例时,传递的组件配置对象包含了希望让组件拥有的所有功能,这些都是在Ext.Component基类的前几行代码完成的. 2.注册事件: 诸如enable/disable,show,hide,render,destory,state restore,state save等等事件,是所有继承于Ex

React Native 中 component 生命周期

React Native 中 component 生命周期 转自 csdn 子墨博客  http://blog.csdn.net/ElinaVampire/article/details/51813677 (非原创) React Native中的component跟Android中的activity,fragment等一样,存在生命周期,下面先给出component的生命周期图 getDefaultProps object getDefaultProps() 执行过一次后,被创建的类会有缓存,映

组件的详细说明和生命周期ComponentSpecs and Lifecycle

render ReactComponent render() render() 方法是必须的. 当调用的时候,会检测 this.props 和 this.state,返回一个单子级组件.该子级组件可以是虚拟的本地DOM 组件(比如 <div /> 或者 React.DOM.div()),也可以是自定义的复合组件. 你也可以返回 null 或者 false 来表明不需要渲染任何东西.实际上,React渲染一个<noscript> 标签来处理当前的差异检查逻辑.当返回 null 或者 

react-native 生命周期

1 import React, { Component } from 'react'; 2 import { 3 AppRegistry, 4 StyleSheet, 5 Text, 6 View 7 } from 'react-native'; 8 9 export default class mykblearn extends Component { 10 constructor(props){ 11 super(props) 12 this.state={times:0} 13 } 14

Unity3d学习 基础-关于MonoBehaviour的生命周期

其实在刚接触Unity3D,会有一个疑问,关于Unity3D游戏运行的初始入口在哪?不像Cocos2dx还有个AppDelegate文件可以去理解.而且在刚开始就接触Unity3D时,看到所有脚本中编写的类 几乎都继承了MonoBehaviour这个父类,那么MonoBehaviour这个类是干什么的? 首先我们看一关于MonoBehavior这个类的继承关系: 从上图可以看出,MonoBehaviour是间接继承自Component,说明继承自MonoBehaviour的脚本充当的角色是组件的

js-react组件生命周期

组件的生命周期可分成三个状态: Mounting:已插入真实 DOM Updating:正在被重新渲染 Unmounting:已移出真实 DOM 生命周期的方法有: componentWillMount 在渲染前调用,在客户端也在服务端. componentDidMount : 在第一次渲染后调用,只在客户端.之后组件已经生成了对应的DOM结构,可以通过this.getDOMNode()来进行访问. 如果你想和其他JavaScript框架一起使用,可以在这个方法中调用setTimeout, se

angular2系列教程(五)Structural directives、再谈组件生命周期

今天,我们要讲的是structural directives和组件生命周期这两个知识点.structural directives顾名思义就是改变dom结构的指令.著名的内建结构指令有 ngIf, ngSwitch and ngFor. 例子 例子是我自己改写的,编写一个structural directives,然后通过这个指令实例化和注销组件,在此同时监视组件生命周期. 源代码 UnlessDirective 这个指令是官网示例中的指令. src/unless.directive.ts im

Android中进程生命周期的优先级

“我们不是生产者,我只是大自然的搬运工.” 学习Android最好的途径当然是强大的官方文档了,其中在Processes and Threads一节中对于进程生命周期淘汰优先级,有着详细的介绍.原文如下: Process lifecycle The Android system tries to maintain an application process for as long as possible, but eventually needs to remove old processes