Dojo是一个强大的面向对象JavaScript框架。主要由三大模块组成:Core、Dijit、DojoX。Core提供Ajax,events,packaging,CSS-based querying,animations,JSON等相关操作API。Dijit是一个可更换皮肤,基于模板的WEB UI控件库。DojoX包括一些创新/新颖的代码和控件:DateGrid,charts,离线应用,跨浏览器矢量绘图等。
Dojo不但提供各式各样的Javascript标准库方法,还包含了功能丰富的部件(极大减少开发量,基本不用再编写JavaScript代码)、构建工具(build脚本)、测试框架等,从全局的角度来看,Dojo框架 有如下几部分组成:
Dojo框架图
Base
作为Dojo的内核,是一个很简洁、高度优化的库,也是Dojo中其他部分的基础组件。
Core
基于Base而构建,提供了解析部件、高级动画效果、拖放工具、国际化、后退按钮处理、管理cookie等方面的功能。其中,Dojo的打包系统提供了如同Java中import语句一样简单的机制,让我们能很方便的导入必要模块和资源。
区分Base和Core,可以简单的通过 是否必须显示引入到页面的模块或资源,并且如果和dojo命名空间有关系,那就是属于Dojo中Core组件部分了。
Dijit
这是Dojo中的部件库,也叫做Dojo widget,它提供了大量即装即用的部件,并且轻量、方便移植。我们同样可以在Dojo中很容易的创建自己的部件库。
对于部件的使用,简单来说只需在普通HTML标签中指定特殊的dojoType属性为你所要使用的部件Id,由于Dijit直接构建与Core,对其强烈依赖,所以我们也是要通过显示引用来加载部件。只要是遵循Dijit的风格和约定,就能开发出同样易于移植并符合可重用组件的要求。
Dijit中的部件简略分类为:通用部件、布局部件和表单部件。通用部件有进度条和对话框等,布局部件有选项卡、折叠菜单栏等,表单布局就是各类BTN、输入框等。
DojoX
DojoX是一组扩展子项目的集合,也就是Dojo中的实验项目或不稳定项目的总和。一般这类组件都是很容易发生变化并不稳定,用他们的话来解释,DojoX是处于构思阶段的部件。
Util
这里就包含了前面介绍JavaScript单元测试框架和一些构建工具。构建工具的主要作用就是减少代码文件的大小,并且能够将它们整合到一个由多层构成的文件集合中(看明白没,说白了就是把项目文件构建成一个紧凑的体系结构),要知道Dojo宣传说压缩后的脚本大小普遍较少50%或者更多。(就我在Dojo项目上摸爬滚打中所了解到,50%是个比较靠谱的数据,我们项目前台js文件压缩后边的很小了)
Dojo的背后力量很强大,在IBM的推动下,很多项目也都应用Dojo框架来做前端,作为知识储备,了解和熟悉它,也是很有必要的。