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.Animationdojo.behaviordojo.Deferreddojo.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 dojodijitdojox中使用3个名称空间的工具包。 dojo命名空间包含几乎每个人以后使用的东西,比如I18N的框架,L10N, dojo.datadojo.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所包含的(小)概述。