说说Yui2.0组件体系特点

在前端开发中,我们实际用到最多的要算容器之类的组件了,在这次本系列的研究框架api的可用性过程中,我就从yui2.0的container模块着手逐一分析该模块总的组件,并指出其api设计的优劣,欢迎大家拍砖。

 

下面是该模块的整体的架构图:

 

 

该模块是位于YAHOO.widget包下,主要包括以下一个类:

这些类的简单介绍:

Module:主要定义了模块化组件的最基本的结构,一个容器包含着head,body,foot三个子节点。这三个子节点的类名分别为hd,bd,ft,该类是所有模块化组件的基类。

Overlay:增加了绝对定位,设置大小,位置,zIndex,和ie下设置iframe防止select的问题。

Panel:增加了一个可拖拽的头部和一个关闭按钮。

Dialog:增加了提交数据的功能,即在内容中放的一个表单,同时底部增加了按钮。

SimpleDialog:拥有了用来提交一个单一数值的功能。

Tooltip:拥有提示信息的功能

 

 

为了说明yui2.0组件api的一些特点,我来使用一些伪代码给大家演示一些:

 

(function(){
//私有方法和私有属性定义在这里
function Module(ele,userConfig){
this.init(ele,userConfig);
}
Module.CSS_HEADER = "hd";//类属性
Module.prototype={
//对象公有属性
element:null,
head:null,
body:null,
foot:null,
id:null,
constructor:Module,
init:function(ele,opt){
//如果页面上存在ele,直接使用,如果页面上没有ele,就会生成一个id为ele的元素
this.initEvent();
this.initConfig();

},
initEvent:function(){
//YaHOO.util.EventProvider中的createEvent进行事件初始化
this.renderEvent = this.createEvent(EVENT_TYPES.RENDER);
},
//当初始化后设置属性
setXX:function(){},
//一些私有的方法
_renderXX:function(){},
render:function(arg){
//如果存在参数,代表使用script脚本生成控件,如果没有参数,代表使用静态html生成控件
},
destroy:function(){
}

}
//把YAHOO.util.EventProvider中的方法附加到Module的prototype属性上用于自定义一些事件
YAHOO.lang.augmentProto(Module, YAHOO.util.EventProvider);
})()
//如果需要用到继承,我们就调用下面的方法
function Overlay(){}
YAHOO.extend(Overlay,Module,{
//这里定义overlay上的共有方法
})
//

 

这样就是整个yui的组件体系结构了。

下面我们来总结下yui2.0中的组件体系结构特点:

1.        构造函数的的第一个参数必须的,用来指明生成的组件的id,如果页面中已经存在该id的元素,就直接使用,如果页面中没有就会用script生成一个id为该id的元素。

2.        所有的组件对象都能够从静态html生成和通过JavaScript脚本动态的生成

3.        所有的组件都有render方法,当通过html生成组件时,render方法不需要参数,当通过动态脚本的方式生成组件时,render方法需要一个参数来指明要显示的地方。

4.        初始化事件所使用的方法是从YAHOO.util.EventProvider,为组件添加一些自定义的事件。初始化配置属性使用Config对象。这些工具类和组件之间都是单独存在的。

5.        要使用继承就是用YAHOO.extend方法。如果组件需要用到一些工具方法的属性,就要用到YAHOO.lang.augmentProto方法,如( YAHOO.lang.augmentProto(Module, YAHOO.util.EventProvider); )

6.        要使用一个组件时其他依赖的组件可以使用动态加载的方式载入页面。

 

 

在这里我们可以发现在添加事件的时候过程还是有点繁琐,同时对于定义一个组件也没有现成的架构可以依赖。在使用时render方法是必须的,同时向head,body,foot这些属性必须通过set方法来设置。具体使用方式请看示例(http://developer.yahoo.com/yui/examples/container/index.html)那么有没有更好的方法解决这些问题呢,请看下面的系列文章。

 

 

时间: 2024-09-22 10:53:38

说说Yui2.0组件体系特点的相关文章

如何在Win 2003中识别IIS 6.0组件

目标 使用本模块可以实现: • 识别 Internet 信息服务 (IIS) 组件 • 了解何时启用 IIS 的各个组件 适用范围 本模块适用于下列产品和技术: • Microsoft Windows Server 2003 操作系统 • Internet 信息服务 6.0 如何使用本模块 本模块与 Windows Server 2003 安全指南配合使用,是该指南的补充材料.完成默认安装后,请使用本模块了解 IIS 的服务和功能.还可以使用本模块了解每个相关服务的角色以及何时启用这些角色. 概

北大青鸟软件工程师 ACCP6.0课程体系

北大青鸟软件工程师 ACCP6.0课程体系. 第一阶段: 面向入门,趣味性为主,引导进入丰富多彩的IT行业,树立继续学习的信心 技能上主要培养学员的逻辑思维能力,在编程方面具有一定的感性认识 第二阶段: 面向基础,理解概念为主,培养自学能力. 技能上主要训练面向对象的思想.代码编写的熟练度和规范度,开始接触企业的应用,在编程方面具有一定的理性认识 第三阶段: 面向就业,企业项目实战训练为主,培养学员独立分析问题.解决问题.总结问题的能力和习惯 技能上讲解业务流程.行业应用.主流框架技术,按照企业

1.我明明用vs2003开发的网站,为何用expression web打开时候,却提示说需asp2.0组件?

问题描述 1.我明明用vs2003开发的网站,为何用expressionweb打开时候,却提示说需asp2.0组件?2.我vc#2003下,调试asp.net1.1时候,提示:试图运行项目出错:无法在web服务器上启动调试.调试失败,因为没有启动集成windows身份验证.

ASP.NET2.0组件控件开发视频 初体验

原文:ASP.NET2.0组件控件开发视频 初体验                               ASP.NET2.0组件控件开发视频 初体验        录了视频,质量不是很好,大家体验下.我会重新录制的 如果不清楚,可以看看http://v.youku.com/v_show/id_XNDg0MTAxNjA=.html   系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发

AspJpeg2.0组件教程完整版 aspjpeg教程

AspJpeg是一款功能强大的基于Microsoft IIS环境的图片处理组件,网络上对其进行详细和深入介绍的中文文章并不多,即使有一般也只是牵涉到图片缩略图和图片水印,这与其为英文版本有着密切的关系. AspJpeg最新版本下载.更多例子及详细的在线对象参考手册: http://www.aspjpeg.com/ 1.什么是AspJpeg? AspJpeg是一款功能强大的基于Microsoft IIS环境的图片处理组件,网络上对其进行详细和深入介绍的中文文章并不多,即使有一般也只是牵涉到图片缩略

怎么修改flash里as2.0组件样式

flash里as2.0的组件样式用代码修改很麻烦, 有时候还改不出来, 现在有一个方法直接修改元件就能改掉组件的显示效果啦! 方法: 1. 新建一个fla文件test.fla(flash cs3以上的记得要选2.0的哦); 2. 在flash的安装目录下找到zh_cnConfigurationComponent SourceActionScript 2.0FLAHaloTheme.fla(这是第二版的组件样式,第一版的是SampleTheme.fla)<为了别误删除, 你可以把他copy到其他地

Element 1.3.6 发布,饿了么 Vue 2.0 组件库

Element 1.3.6 已发布,更新内容: 修复 ColorPicker 的默认值有时与面板中的值不一致的问题 修复默认值为白色的 ColorPicker 无法通过面板改变 hue 的问题 修复 Dialog 在滚动后,其嵌套的 Select 需多次点击才能呼出的问题 新增 Autocomplete 的 props 属性 修复 DatePicker 在手动输入值后按 Tab 切换焦点时下拉框不消失的问题 Element 是由饿了么公司前端团队开源,是一套为开发者.设计师和产品经理准备的基于

Element 1.3.4 发布,饿了么 Vue 2.0 组件库

Element 1.3.4 已发布,Element 是由饿了么公司前端团队开源,是一套为开发者.设计师和产品经理准备的基于 Vue 2.0 的组件库,提供了配套设计资源,帮助你的网站快速成型. 更新内容: 修复带展开行的 Table 在高亮和斑马纹效果下的问题 新增 Select 的 default-first-option 属性 修复可创建选项的 Select 在没有选项数据时不显示「无数据」文本的问题 文章转载自 开源中国社区[https://www.oschina.net]

Element 1.3.5 发布,饿了么 Vue 2.0 组件库

Element 1.3.5 已发布,更新内容: 修复 Select 的 default-first-option 属性在远程搜索时不生效的问题 修复 InputNumber 与其他表单组件同行显示时不能对齐的问题 修复行内 FormItem 对复合型 Input 失效的问题 修复 FormItem 在 Firefox 中的高度与其他浏览器不一致的问题 修复 Cascader 中 value 为 0 的数据不能展开下一级的问题 修复 Autocomplete 无法触发原生 keydown 和 ke