Google Dart将舍弃Web UI,并用Polymer代替它。从表面上看,它们的主要差别是数据绑定和事件处理。 Google的Dart团队已经开始将Polymer移植到Dart。许多组件已经完成并打包,包括observe、mdv、shadow_dom和polymer.dart。据Dart工程师John Messerly介绍,其余功能也将在不久的将来完成,包括: - 声明式<polymer-element>和定制元素
- 更多[url=]新的或[/url]最新的polyfill包,如html_imports
- 删除polymer.dart的强制编译步骤,只需编辑、保存和刷新
- 将Polymer UI元素引入Dart
- 上述所有新亮点的最新文档
Google Polymer是一个基于Web组件构建[url=]Web 应用的新框架,它承诺支持所有最新的HTML5标准和所有常用浏览器。对于后者,它使用polyfill补偿这些浏览器缺失的功能。Polymer看上去前途光明,Dart对它提供原生支持可能是个不错的主意。另一方面,Google打算放弃对Dart原先使用的UI框架[/url]Web UI的支持。Web UI构建的初衷也是支持HTML5标准,包括Web组件和模型驱动视图。 Dart切换新的UI框架使许多用户感到意外: Thomas Løcke:我很高兴有了Polymer,但不要误会我的意思,失去Web UI 我很难过。我已经在Web UI上花费了大量时间。 Bernd Wessels:Polymer.dart之后是什么呢? 难道Dart(Web开发的未来)的主要UI框架要基于一组松散的polyfill的集合?我对此表示怀疑。 我的观点是,在经历了对Dart发布漫长的等待后,结果令人沮丧,Dart依然没有为UI开发提供一个可靠的基础。
数个Google工程师试图缓解用户对Dart不[url=]会在短期内[/url]稳定的忧虑,并解释了他们选择Polymer.dart的原因: John Messerly:像Dart这样的新语言,有一点让令人兴奋,我们可以直接飞跃到Web开发的未来。我不确定是否还能通过其它方式做到这点。任何新的UI框架/库都有一个逐步稳定的过程。通过拥抱Web组件和其它标准相关的努力,我们希望Web成为最佳的开发环境,并受益于这种努力。 Kasper Lund:我们一直致力于平台其余API的稳定性工作。最大的难点在于,随着时间的推移,浏览器API总是在不断的发展变化。
对于花费大量时间使用Dart构建Web应用的开发人员而言,所幸这两个UI框架的外在差别并不大,在它们之间进行移植非常简单直观,另一位Dart工程师Justin Fagnani解释道: 因为它们都是基于底层的影子DOM、定制元素、MDV和HTML imports等,所以两者的区别并没有那么大。开发者仍然可以使用<element>、<template>、<content>标签和{{}}绑定。有些细节发生了变化,包括数据模型绑定到模板的方式、绑定语法和属性值映射到属性的方式等。这些变化部分是为了适应Polymer,部分是因为MDV已经变化,总之无论如何都已经发生。
下面的代码片段来自两个示例,展示了这两个框架用法的不同: Web UI: <ul id="todo-list"> <template iterate="x in app.todos"> <template if="viewModel.isVisible(x)"> <todo-row todo="{{x}}"></todo-row> </template> </template></ul>Polymer.dart: <ul id="todo-list"> <template repeat="{{app.visibleTodos}}"> <li is="todo-row" todo="{{}}"></li> </template></ul>[url=]尽管[/url]Dart工程师不断尝试向语言中引入最新的技术,但这些变化也表明了投注到不够成熟和稳定的技术上存在的风险。Polymer主页上声明:“Polymer处于pre-alpha状态,只适用于具有冒险精神的开发人员。” 关于Polymer的更多细节可以阅读InfoQ的新闻:使用Google Polymer的Web组件。 Google的另一个重要框架Angular.js正在移植到Dart。更多信息请查看这则新闻:AngularJS正在移植到Dart上 。 查看英文原文:Google Dart Developments: Polymer Replaces Web UI
|