组件模型在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. 设为首页 收藏(IE可用)
  2. 【EOJ Monthly 2019.01 - E】唐纳德先生与假骰子(假概率问题)
  3. tpl_form_field_category_2level() - 二级分类选择器说明
  4. 为什么做的报表领导不满意,如何提升报表的价值?
  5. [转载] Python进程——multiprocessing.Event()|Barrier()
  6. tp801单板微型计算机是什么,给TP801单板机配接RX—80打印机
  7. mybatis主键是在insert前生成还是之后生成
  8. 阶段3 2.Spring_08.面向切面编程 AOP_6 四种常用通知类型
  9. macOS 配置Android SDK 环境变量
  10. 贾俊平《统计学》常用公式
  11. 统计学中数据分析方法汇总!
  12. 看看月明光彩照入东 水浒
  13. 阿里巴巴icon在vue项目中使用方法
  14. React Native-6.React Native Text组件,多组件封装实战之凤凰资讯页面
  15. 电脑连不上网,WiFi没有显示出来
  16. php登陆界面点登陆没有反应,ThinkPHP5实战的登录界面的登陆按钮点击之后没有任何反应怎么解决?...
  17. ThinkPHP 虚拟主机 跳转public主页设置
  18. 使用计算机结束时断开终端的连接属于什么,计算机结束时断开终端的连接属于什么...
  19. 亚马逊10000人大裁员已启动!谷歌绩效强制打低分跟风「毕业潮」
  20. 报错FileSystemException: /datas/nodes/0/indices/gtTXk-hnTgKhAcm-8n60Jw/1/index/.es_temp_file:结构需要清理

热门文章

  1. python装饰器理解_如何理解Python装饰器?
  2. Selenium自动化测试-JavaScript定位
  3. 灰度与NFL纽约巨人队达成合作,成为NFL球队首个加密赞助商
  4. Wootrade宣布加入SushiSwa旗下Mirin协议和子池计划
  5. Reef Finance与Manta Network就流动性解决方案达成合作
  6. SAP License:FI疑难问题小结
  7. 机器学习:神经网络的代价函数及反向传播算法
  8. 四、mysql数据常用命令
  9. SSO的几种跨域方案
  10. C#实现二维码功能,winform 以及 asp.net均可以用