我从一些 Dart 示例开始。然后我想查询 DOMdocument.query('#someId')
如上所述here http://www.dartlang.org/articles/improving-the-dom/,但是文档中好像没有查询方法。另外,通过 `new Element.tag('p') 创建新元素也不起作用。
然后我发现当我更改导入的包时它会起作用dart:dom
to dart:html
。但是同时使用它们给了我很多duplicate definition of _XYZ
.
所以我想知道:
- 有什么区别
dart:html
and dart:dom
package
- 我应该使用哪一个
- 为什么我不能同时使用两者
回答有点乱
我应该使用哪一个:你应该使用dart:html
它在 DOM 之上提供了最干净的抽象。
为什么我不能同时使用:严格来说应该不需要,但您实际上可以到达底层dart:dom
实施来自dart:html
使用描述的肮脏黑客行为here http://phylotic.blogspot.com/2012/01/getting-at-dartdom-element-via-darthtml.html。更好、更干净的解决方案是使用 Dart 的重命名导入的功能,即#import('dart:dom', prefix: 'dom');
正如所描述的@优厚 https://stackoverflow.com/users/9457/munificent below.
dart:html 和 dart:dom 包有什么区别。我倾向于认为它们之间的区别类似于 JQuery (dart:html
) 与 JS DOM 操作 (dart:dom
).
Dart 团队正在努力使dart:html
API 使用起来简单且毫不奇怪(以良好的方式),因为我们已经习惯了 JQuery(dom 操作)等库,Tree.js http://mrdoob.github.com/three.js/(WebGL 编程)和D3 http://mbostock.github.com/d3/(SVG 绘图)。此外,他们还尝试在所有这些功能领域遵循一种 API 风格,以便 SVG 或 WebGL API 使用与 DOM API 类似的结构,从而确保所有部分能够很好地协同工作。
Update:截至 2012 年 5 月dart:dom 现已弃用 http://news.dartlang.org/2012/04/deprecation-notice-migrate-from-dartdom.html并将被删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)