首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

YUI3学习(6)-组件框架之 Attribute

2012-11-08 
YUI3学习(六)---组件框架之 Attribute?1,YUI3组件框架组件框架基于YUI Core,是建立和扩展组件的基础;组件

YUI3学习(六)---组件框架之 Attribute

?

1,YUI3组件框架

组件框架基于YUI Core,是建立和扩展组件的基础;组件框架从下而上依次基于attribute、base、widget 模块组成,同时基于plugin模块实现灵活扩展。

相关类说明:

Attribute类 ?提供属性管理,可以扩展任何类使之具备属性管理功能,如提供get/set接口和change事件。

Base类 ? ? ? 提供属性管理和基础的事件机制,同时提供声明周期管理和插件机制。

Widget类 ? ?派生自Base,为可视化对象提供通用的属性和方法(visible,show等)以及渲染周期管理,并为开发Widget,建立了一套通用的模式。

Plugin类 ? ? 可以向对象灵活 添加/移除 额外的功能。

类相关关系如下:

Attribute uses EventTarget(掺元继承);Base uses Attribute and Plugin.Host(掺元继承);Widget extends Base(OO继承)

?

?

Attribute

通过Attribute类可以为任何的类扩充属性管理功能。扩充后,类将被添加get和set方法去获取和存储属性值,同时支持属性值修改的change事件来监听值的变化。

此外,属性可以通过配置getter、setter和validator方法来自定义值的存取和验证。属性也支持被设置为‘read-only'或'write-once'。

使用Attribute,需要引入依赖模块’attribute‘

1,使用Attribute扩充自定义的类

function MyClass(){}

Y.augment(MyClass,Y.Attribute);

如此,MyClass实例就可以使用Attribute类里定义的方法来配置属性。具体Attribute方法列表可参考API文档。

注意:通常情况下,与augment Attribute相比,更多的实现是继承Base类(Base uses Attribute)。Base默认延时初始化属性,可以提高程序的性能。

使用Attribute,也可以设置延时初始化。

2,为自定义的类添加属性

可以在自定义类中使用Attribute的addAttrs方法为类添加多个属性,也可以使用addAttr方法添加单个属性。addAttrs方法接收属性配置信息和默认值信息两个参数,第三个参数标记是否延时初始化。

代码如下:?

?

?

?

?

?

6,设置子属性

如果属性为object对象,属性如下:

?

var lbl = o.get("strings.ui.accept_label");
?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

热点排行