Dojo样式编码
我是dojo样式编码的新手。 习惯了纯粹的javascript然后是jQuery风格。 搜索并得到一些结果,如
- 与闭包编译器一起使用时,Dojo效果最佳。
- 高级dojo比程序类型更多OO
我遇到了问题
- dojo.require() – 每当我下载dojo的插件时,我都会收到错误 – 404 NOT FOUND。 开发的一半时间用于修复此问题,获取js文件并将其放置在位置。
- 并且可以像在jQuery中一样扩展dojo对象,我们通过使用内部定义为
jQuery.fn = jQuery.prototype
$ .fn.somefunction来扩展根jquery对象。 道场有类似的东西吗? - 我觉得dojo的文档不如jQuery的文档好。
- 什么是dijit和dojox? 当我从谷歌api库导入dojo.js,然后在dojo中使用插件时,这些dijit和dojox总是一个问题。
需要一些帮助。 我正在将几个插件从jQuery移植到dojo。 这些插件在dojo中不可用。
我觉得在使用dojo编码时必须使用整个库,然后编译它以获得优化的代码,并将其导出到所需的时间。 我在这儿吗? 如果没有,我做错了什么?
1)dojo.require通过XHR请求自动下载所需的文件。 您无需手动下载任何内容。 如果您使用谷歌CDN所有类应从那里下载,我建议将完整的包下载到您的本地应用程序并从那里使用它。 稍后您可能想要创建一个Build 。 您还应该阅读从Dojo开始
2)像jQuery一样增强dojo没有任何意义。 dojo
只是顶级命名空间,在它下面你有很多类,如dojo.Animation
, dojo.behavior
, dojo.Deferred
, dojo.NodeList
和许多其他类。 有些是像dojo.connect()
和dojo.style()
这样的函数。
如果要创建一个新类,请查看dojo.declare 。 您还可以在dojo
“namespace”或其他名称空间下创建新类。
如果要向dojo
命名空间添加新函数,只需键入dojo.new_function = function(){}
就像普通的JavaScript一样。 但我不建议这样做。 如果升级到以后的Dojo版本,它可能会出现问题。
jQuery和Dojo完全不同。 如果在jQuery中键入类似$('.data')
,它会使用类“data”获取所有dom节点,并返回一个在jQuery
类中包装的新对象。
在Dojo中,您使用dojo.query('.data')
获得相同的效果。 但它返回dojo.NodeList
类型的新对象。 如果要为链式function添加新function,则需要扩展dojo.NodeList。
已经存在一些像dojo.NodeList-fx
这样的扩展,它将动画效果添加到dojo.NodeList
类中。 如果使用dojo.require()
加载类,则dojo.Nodelist将自动扩展。 查看Extend dojo.NodeList以获取更多信息。
3)文档非常好,您提出的所有内容都已记录在案,我提供了一些您在Dojo主页上完整查找的资源。 不同之处在于Dojo是一个完整的工具包,包括GUI,布局系统,小部件,数据抽象和许多其他非常高级的东西。 如果你从未使用过类似的东西,那么很难从它开始,因为它包含了很多东西。 jQuery没有提供这样的东西。 所以有时候开始使用它肯定会更容易。
有关文档,请查看:
- 教程
- 参考指南
- API浏览器
4)Dojo是一个在JavaScript dojo
, dijit
和dojox
中使用3个名称空间的工具包。 dojo
命名空间包含几乎每个人以后使用的东西,比如I18N的框架,L10N, dojo.data
或dojo.store
等模型抽象以及许多其他东西。
只是按顺序加载“dojo.js”文件并不能提供dojo
提供的所有内容。
dijit
命名空间在Dojo中包含许多小部件。 dijit
命名空间中的所有小部件都具有完整的I10N和L10N支持。 dijit
包含Dialog,Layout Systems,Widgets,如日历,按钮,选择字段,无线电字段, dijit.Editor下的完整WYSIWYG编辑器 。
另请参阅Dijit主题编辑器以查看Dijit包含的内容。 包含布局的完整站点基于dijit完成。
dojox
命名空间包含许多不适合dijit
或实验的额外function。 但并非一切都是实验性的。 您可以找到dojox.grid.DataGrid或dojox.charting
( 开始图表 , 高级图表 )或像dojox.gfx这样的系统来创建使用SVG,Canvas,VRML,Silverlight或Flash的跨浏览器图形。
只需了解Beyond Dojo的核心,即可获得dijit和dojox所包含的(小)概述。