组件模型在Ext1.x中已经引入了,但在框架中并没有得到全面的整合。2.0以后组件得到了很大的提高和改进,成为了框架的里最基础的一个类。组件对象模型为组件的创建、渲染、事件处理、状态管理和销毁提供了统一的模型。Ext内置的组件都具备以上这些特征。

  1. 创建

    组件会将一个基础构造器连同配置传入到子类中。函数initComponent用于提供制定的构造器逻辑,只要在继承链上的某一个子类实现便可,所有的组件都遵从这种方式。此时的子类就可在initComponent中对其设置相关的属性,实现具体的功能。

  2. 渲染

    2.0中,每个组件都支持延时渲染(lazy rendering),又称按需渲染(on-demand rendering)。渲染的调控一般是为你自动设置完好的。即使如此,你亦可以通过的beforerender和render事件控制渲染发生、结束,达到最为灵活的自定义调控。

  3. 销毁

    每一个组件具有destroy的函数,当组件不再需要时,Ext就负责组件的结束调控,如自动垃圾回收和摧毁组件元素。当然,销毁亦提供相应的事件,如beforedestroy和destroy可按照实际的情况作出逻辑处理。

  4. 状态管理

    组件内建设置和获取状态(State)的功能,只要让全局对象StateManager和一个状态 Provider都初始化好,那么多数的组件都具有自动状态管理的能力。

  5. 常规行为统一接口

    一般常规的行为如隐藏、显示和激活、禁用均是组件的基本特性。如需要,这些都可由子类去重写或制定。

  6. 可调用

    Ext的每一个组件在创建的时候就会由组件管理器登记注册,即你可随时获取任何组件,只需调用Ext.getCmp('id')。

  7. 支持插件

    现在任何的组件可以通过插件的形式来扩展了。插件实质是带有init方法的一种类。该方法会有一个单独的参数(类型为Ext.Component)传入到其中。插件可通过组件的plugins配置项指定。当组件创建时,如果有插件可用,组件就会调用每个插件上的init方法,将自身的引用作为参数传入。 每个插件运行之后可调用组件的方法或响应组件的事件以实现自身的功能。

组件模型的统一主要是基于OO对象模型的,OO模型提供了类型继承机制,使得从组件基类扩展的所有子类都能够拥有统一的特征(如事件订阅的能力)。而具体每一个特征都和所有公共的实用类不可分割,比如组件的可调配性是基于管理容器实现的,而容器的应用在整个框架中随处可见,再比如事件能力又和事件模型的定义不可分割,事件模型中事件对象和订阅对象的管理也要依赖于容器对象。其实在Javascript中最简单而基础的容器莫过于对象本身(可以认为数组也是对象的一种包装)。

组件生命周期

  1. 传入配置调用
  2. 底层事件创建
  3. 组件注册
  4. 状态感知
  5. 加载插件
  6. 渲染
    1. 触发beforerender事件 The beforerender event is fired。这是个可取消的事件,指定的句柄(handler)可阻止组件进行渲染
    2. 设置好容器 The container is set
    3. 如果没有指定一个容器,那么将使用位于DOM元素中组件的父节点作为容器。
  7. 销毁
    1. 继续

转载于:https://www.cnblogs.com/boolean/archive/2008/08/10/1264694.html

Ext的组件模型印象相关推荐

  1. 基于面向服务体系架构(SOA)和面向资源体系架构(ROA)的业务组件模型

    引言 在<面向服务体系架构(SOA)和业务组件(BC)的思考>(以下简称< SOA 和 BC >)一文中介绍了基于面向服务体系架构(SOA)的组件模型,本文按照"分离 ...

  2. ext.js组件的基本操作

    MessageBox组件 //Ext.onReady 准备函数 类似于window.onload Ext.onReady(function(){//提示信息 // Ext.MessageBox.ale ...

  3. Qt Creator添3D组件模型

    Qt Creator添3D组件模型 添3D组件模型 镶嵌 将材料添加到子网格 添3D组件模型 模型组件从文件加载网格数据.您可以通过向模型添加材料来修改组件的着色方式. 模型可以从存储或内置基本类型之 ...

  4. 接触VC之四:COM组件模型基础

    From: http://daimajishu.iteye.com/blog/1081292 一年又一年,已经又过了一年了.我VC的生涯已经两岁了.可以相当地庆贺一下哟.回顾这一年的学习(唉,还没有工 ...

  5. 草图大师里创建动态组件_教你搞定SketchUp草图大师动态组件模型下载

    昨天最角模型上发布了一个"室内概念草图"的视频,里面涉及到一个门的开关,很多SketchUp爱好者非常好奇,是怎么制作的?虽然不是利用动态组件制作的,但其实就是动态组件的意思.大家 ...

  6. Service-Oriented Architecture:面向服务的架构(SOA)是一个组件模型

    面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台. ...

  7. 巨无霸 对 组件模型

    基于组件的应用程序结构域与传统的巨无霸程序有着根本的不同.为了理解不同,我们来比较一下相同应用程序的各个实施方法. 巨无霸模型 现在,假设你是一个软件公司的产品经理,负责为制造业研发软件.这个软件应用 ...

  8. SOA 组件模型!!

    面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.接口是采用中 ...

  9. 工作流组件_过程组件模型:下一代工作流?

    工作流组件 介绍 托尼·贝尔说 BPM人来自金星,WS人来自火星 这恰好总结了BPM行业中一个可能并不明显的大部门. 术语BPM人士是指专注于流程建模的人员. 他们的出发点是对描述人员和系统如何在组织 ...

最新文章

  1. 冲向大牛之安卓---2014.11月面试经常碰到的一些问题
  2. 2498-R06 SFP与线缆的选择与配置
  3. php.ini 中文版第二部分(关于这个配制文件)
  4. tomcat 虚拟路径 与 虚拟主机配置
  5. flask总结之session,websocket,上下文管理
  6. 灵感分享| 实例UI组件的设计风格
  7. 18.输入和输出函数
  8. 闵帆老师论文写作课程心得体会-怎么写好一篇论文
  9. 庄文展解读李嘉诚(四十五) 如何管理好自己的”自负指数”?
  10. 产品经理的核心竞争力
  11. perl novel可变剪接识别(1)
  12. React hooks组件通信
  13. vs2008中文版 下载
  14. 计算机网络 第七章 网络安全
  15. 牛逼哄哄的京东 JD-hotkey
  16. 产品分析中如何去做用户调研
  17. 所有学习资源都给你你汇总好啦!
  18. 认识Innodb存储引擎
  19. MySQL中的事务相关属性以及JDBC编程
  20. 金融时报:电信改革重拼成软骨巨人?

热门文章

  1. java判断对象已经被回收_Java中JVM判断对象已死的基本算法分析
  2. python网络通信传输的数据类型_Python网络编程中的网络数据和网络错误。
  3. vue获取原生html节点,vue是如何获取元素节点 ?
  4. glassfish启动后不能进入部署页面_Flink on Yarn三部曲之二:部署和设置
  5. SAP License:SAP货币转换
  6. 赛锐信息:SuccessFactors激活高效能人员战略
  7. 风控扫盲:巴塞尔下的分池与量化风控岗
  8. Axure高保真保险行业后台管理原型+微保CRM客户管理+保险产品附加险、费率+web端企业crm后台管理原型+渠道管理、会员管理
  9. Python入门学习笔记(2)
  10. Vue中Object和Array数据变化侦测原理