0
最近我一直在研究Dojo作为jQuery和Backbone的替代方案。我喜欢它,但我唯一不喜欢的是Dojo使用HTML5数据属性。Dojo数据属性
我并不特别喜欢混合使用JavaScript和HTML,我宁愿将所有东西都完全分开。有没有办法用Dojo来做到这一点?
最近我一直在研究Dojo作为jQuery和Backbone的替代方案。我喜欢它,但我唯一不喜欢的是Dojo使用HTML5数据属性。Dojo数据属性
我并不特别喜欢混合使用JavaScript和HTML,我宁愿将所有东西都完全分开。有没有办法用Dojo来做到这一点?
您可以选择是否以编程方式或声明方式编写小部件。在@BuffaloBuffalo给你的链接上比较两者的好处/差异。
HTML
<button data-dojo-type="dijit/form/Button">Click me</button>
的JavaScript
require(["dijit/form/Button", "dojo/parser"]);
您必须将parseOnLoad: true
放入您的Dojo配置或使用dojo/parser
模块API手动解析节点。
HTML
<button id="myBtn">Click me</button>
的JavaScript
require(["dojo/dom", "dijit/form/Button", "dojo/domReady!"], function(dom, Button) {
new Button({
label: "Click me"
}, dom.byId("myBtn"));
});
的差异是很清楚,但有一点要注意。正如你所看到的,声明性代码从按钮获取标签,这在使用以编程方式创建的小部件时不会发生。他们只使用DOM节点作为占位符,它不查看其属性或HTML属性。
但是,除了定义小部件之外,您可以使用数据属性做更多的事情。下面我将一一列举了,给你,你怎么能实现使用JavaScript同样的事情替代:
data-dojo-config
用来加载道场配置。此另一种方法是通过创建一个JavaScript文件和声明包含这些特性的dojoConfig
全局对象。data-dojo-attach-point
和data-dojo-attach-event
用于创建连接点或引用从模板呈现的DOM节点。您可以通过使用dojo/query
模块并通过查询您的小部件来获取正确的DOM节点/事件处理程序来实现同样的目的。domNode
data-dojo-props
为您提供了通过HTML5属性配置小部件属性的可能性。给它的替代方案是,以获得小窗口的参考并且使用set()
功能。
你可能想看看http://stackoverflow.com/questions/19130354/declarative-coding-or-programmatic-coding-in-dojo-projects和http://stackoverflow.com/questions/19440556 /差之间-编程-VS-声明创建的小部件合道场。 – BuffaloBuffalo