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框架来做前端,作为知识储备,了解和熟悉它,也是很有必要的。

认识dojo的更多相关文章

  1. AngularJs2与AMD加载器(dojo requirejs)集成

    现在是西太平洋时间凌晨,这个问题我鼓捣了一天,都没时间学英语了,英语太差,相信第二天我也看不懂了,直接看结果就行. 核心原理就是require在AngularJs2编译过程中是关键字,而在浏览器里面运 ...

  2. Dojo前端开发框架与jQuery前端开发框架,对比分析总结

    最近Dojo和jQuery双双发布了最新的1.8版本,有着相同版本号的两个Javascript库也有许多核心的相同之处:相同的资源加载机制AMD.相同的选择器 引擎Sizzle等.作为业界知名的Jav ...

  3. Dojo: Quick Start

      1.Dojo学习地址 2.Dojo快速开始 2.1.Dojo引入 2.2.指定Dojo模块的位置 2.3.模块加载require 3.查找Dom节点 3.1.根据id查找dom节点 3.2.根据c ...

  4. js库之dojo

    使用dojo源代码 1.下载Dojo 2.dojo目录结构如下 demo/ myModule.js dojo/ dijit/ dojox/ util/ hellodojo.html 3.引入dojo. ...

  5. dojo.require()的相关理解

    Dojo 提供了一个非常强大的javascript控件库. 在使用dojo之前,用户基本上不需要具备任何基础知识. 你可以用script远程链接到dojo(dojo.js), 也可以把dojo.js下 ...

  6. dojo tree edit的使用[前端]

    var store = new mydata.JsonRestStore({ target: "<%=ResolveUrl("~/uieditserver.ashx" ...

  7. 【原创】(AMD)JavaScript模块化开发(dojo)

    AMD原理等在这里就不进行说明了,作者也是菜鸟一枚,只是对自己的一个实例进行说明,如有错误,望指出. 首先,先推荐一篇AMD方面的文章,有兴趣的可以参考:http://efe.baidu.com/bl ...

  8. 开始学习Dojo

    学习:Dojo入门简易教程 Dojo Toolkit 简介 Dojo 于 2004 年创建,使开发 DHTML 和 JavaScript web 应用程序开发流程更为容易,隐藏了很多现代 web 浏览 ...

  9. understand dojo/domReady!

    require(["dojo/dom", "dojo/domReady!"], function(dom){ dom.byId("helloworld ...

  10. 一起来学习DOJO吧--序

    DOJO的官方站点http://dojotoolkit.org/ DOJO是一套完整的javascript解决方案,从UI到类库都提供了全覆盖的支持. DOJO是一套很重的框架,在运用到项目中前请谨慎 ...

随机推荐

  1. spring mvc 框架启动报错:nested exception is java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal 解决办法

    今天准备将以前自己搭建的一个框架拿出来用一下,结果发现启动报错:nested exception is java.lang.NoClassDefFoundError: org/w3c/dom/Elem ...

  2. virtueBox实现虚拟机的复制和粘贴

    1.在设备--共享粘贴板--勾选双向. 2.在设备--拖放--勾选双向. 3.在设备--安装增强功能,然后进入虚拟机安装增强功能即可.

  3. Axios 使用说明

    get请求: on_sum: function () { axios.get('http://127.0.0.1:8000/test/' ).then(response=>{ alert('ok ...

  4. docker构建mysql容器及Navicat 远程连接

    1. MySQL部署 1.1拉取MySQL镜像 docker pull mysql 查看镜像 docker images 1.2创建MySQL容器 首先建立所需要的 文件夹: docker run - ...

  5. js中的slice和splic

    一:slice 的用法 slice() 用于数组方法可从已有的数组中返回选定的元素,也就是在该方法中指定的元素.该方法不会改变原数组,,返回值是一个新的数组. 选取的范围是 从 当前位(0) 开始(索 ...

  6. C++_异常8-异常、类和基础

    异常.类和继承以三种方式相互关联. 首先,可以像标准C++库所做的那样,从一个异常类派生出另一个. 其次,可以在类定义中嵌套异常类声明来组合异常. 第三,这种嵌套声明本身可以被继承,还可以作为基类. ...

  7. docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled (Client.Timeout exceeded while awaiting headers).

    docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled ...

  8. 精神AC合集 2018.4.3

    UESTC炸了,先把看似十分OK(只是过了样例)的代码贴上,修复好后再交上去 594 #include<iostream> #include<algorithm> #inclu ...

  9. SpringMVC 商城项目

    1.  商城视频中有word   笔记文档

  10. [转]【NODE】用WS模块创建加密的WS服务(WSS)

    [From] https://luojia.me/2015/07/21/%E3%80%90node%E3%80%91%E7%94%A8ws%E6%A8%A1%E5%9D%97%E5%88%9B%E5% ...