麻雀虽小五脏俱全麻雀虽小五脏俱全 Dojo自定义控件应用自定义控件应用
现在Javascript框架、控件库有很多,jQuery、Ext、prototype、MooTools、Dojo等等,这些都是在Google上搜
索“javascript+framework”列在第一页的。其中,除了MooTools,其它的都有所了解,但只在项目中用过Ext和Dojo。但一直不
太喜欢Ext,性能有问题,新的版本还收费了。
另外,Ext官方提供的例子都是用JavaScript来创建和初始化控件,一个JavaScript配套一个HTML来用,这样管理起来很混
乱。而且官方例子是Best Practice,所以不太接受这种模式。Dojo在本人眼里是一个缺点和优点都很突出的家伙:
缺点:缺点:
1、文档非常之差;
2、CodeBase非常之大(优点乎,缺点乎?);
3、版本演进快,且每次版本演进,都有大量的API发生变化,还不够成熟。
优点:优点:
1、是一个很优秀的控件开发框架;
2、完全体现了javascript面向对象的一面。
EXT和Dojo比起来,本人觉得EXT是一个控件库,而Dojo是一个框架。第一次接触Dojo,当时版本0.3.X,今天项目中又有需
求想用Dojo,版本是1.3.1,对比0.3和1.3,发现核心的思路并没有太大变化,但出厂提供的控件却有翻天覆地的变化,不过
已经先入为主的对它的控件有成见,导致现在也没有兴趣再去研究,还是讲讲如何拿Dojo做自定义的控件吧。Dojo很复杂,
但我们可以简单的认为它分三层:
1、最底层的是核心、最底层的是核心API
核心API提供的方法简化了DOM、字符串、CSS、事件等相关的操作。核心API还实现了类似于Java的package概念和import
机制,方便了代码组织和依赖管理。
2、基于核心、基于核心API,创造了,创造了“控件生命周期控件生命周期”概念概念
这是Dojo的亮点,允许第三方以规范的方式开发控件。基于Dojo开发的控件具有很强的内聚性和面向对象的特性。
3、基于、基于2所开发的各类控件所开发的各类控件
Dojo自己提供的控件也比较全了,只是由于历史原因,没有深入研究过。