Google Dart将舍弃Web UI,并用Polymer代替它。从表面上看,它们的主要差别是数据绑定和事件处理。

\

Google的Dart团队已经开始将Polymer移植到Dart。许多组件已经完成并打包,包括observe、mdv、shadow_dom和polymer.dart。据Dart工程师John Messerly介绍,其余功能也将在不久的将来完成,包括:

\

  • 声明式\u0026lt;polymer-element\u0026gt;和定制元素\
  • 更多新的或最新的polyfill包,如html_imports\
  • 删除polymer.dart的强制编译步骤,只需编辑、保存和刷新\
  • 将Polymer UI元素引入Dart\
  • 上述所有新亮点的最新文档\

Google Polymer是一个基于Web组件构建Web 应用的新框架,它承诺支持所有最新的HTML5标准和所有常用浏览器。对于后者,它使用polyfill补偿这些浏览器缺失的功能。Polymer看上去前途光明,Dart对它提供原生支持可能是个不错的主意。另一方面,Google打算放弃对Dart原先使用的UI框架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不会在短期内稳定的忧虑,并解释了他们选择Polymer.dart的原因:

\

\

John Messerly:像Dart这样的新语言,有一点让令人兴奋,我们可以直接飞跃到Web开发的未来。我不确定是否还能通过其它方式做到这点。任何新的UI框架/库都有一个逐步稳定的过程。通过拥抱Web组件和其它标准相关的努力,我们希望Web成为最佳的开发环境,并受益于这种努力。

\

Kasper Lund:我们一直致力于平台其余API的稳定性工作。最大的难点在于,随着时间的推移,浏览器API总是在不断的发展变化。

\

\

对于花费大量时间使用Dart构建Web应用的开发人员而言,所幸这两个UI框架的外在差别并不大,在它们之间进行移植非常简单直观,另一位Dart工程师Justin Fagnani解释道:

\

\

因为它们都是基于底层的影子DOM、定制元素、MDV和HTML imports等,所以两者的区别并没有那么大。开发者仍然可以使用\u0026lt;element\u0026gt;、\u0026lt;template\u0026gt;、\u0026lt;content\u0026gt;标签和{{}}绑定。有些细节发生了变化,包括数据模型绑定到模板的方式、绑定语法和属性值映射到属性的方式等。这些变化部分是为了适应Polymer,部分是因为MDV已经变化,总之无论如何都已经发生。

\

\

下面的代码片段来自两个示例,展示了这两个框架用法的不同:

\

Web UI:

\

\\u0026lt;ul id=\"todo-list\"\u0026gt;\   \u0026lt;template iterate=\"x in app.todos\"\u0026gt;\      \u0026lt;template if=\"viewModel.isVisible(x)\"\u0026gt;\        \u0026lt;todo-row todo=\"{{x}}\"\u0026gt;\u0026lt;/todo-row\u0026gt;\      \u0026lt;/template\u0026gt;\   \u0026lt;/template\u0026gt;\\u0026lt;/ul\u0026gt;

\

Polymer.dart:

\

\\u0026lt;ul id=\"todo-list\"\u0026gt;\   \u0026lt;template repeat=\"{{app.visibleTodos}}\"\u0026gt;\      \u0026lt;li is=\"todo-row\" todo=\"{{}}\"\u0026gt;\u0026lt;/li\u0026gt;\   \u0026lt;/template\u0026gt;\\u0026lt;/ul\u0026gt;

\

尽管Dart工程师不断尝试向语言中引入最新的技术,但这些变化也表明了投注到不够成熟和稳定的技术上存在的风险。Polymer主页上声明:“Polymer处于pre-alpha状态,只适用于具有冒险精神的开发人员。”

\

关于Polymer的更多细节可以阅读InfoQ的新闻:使用Google Polymer的Web组件。

\

Google的另一个重要框架Angular.js正在移植到Dart。更多信息请查看这则新闻:AngularJS正在移植到Dart上 。

\

查看英文原文:Google Dart Developments: Polymer Replaces Web UI

\


感谢臧秀涛对本文的审校。

\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

Google Dart新进展:Polymer代替Web UI相关推荐

  1. gis 大屏_胡中南:Web端GIS技术新进展 | (PPT+速记)

    ▲点击关注,收获更多GIS精彩 在GTC 2020『GIS基础软件新技术论坛』上,超图研究院副院长胡中南作<云原生GIS及Web端技术新进展>报告,他首先系统讲解了云原生GIS技术的三大新 ...

  2. 专刊文章 - Web UI框架引领J2EE新开发模式(代码生成器+手工merge半智能开发)

    前言:随着WEB UI框架(EasyUI/Jquery UI/ExtJS/DWZ)等的逐渐成熟,系统界面逐渐实现统一化,代码生成器也可以生成统一规范的界面!代码生成+手工MERGE半智能开发将是新的趋 ...

  3. vue技术分享ppt_胡中南:Web端GIS技术新进展 | GTC专题论坛报告(视频+PPT+速记)

    点击图片上方蓝色字体"慧天地"即可订阅 文章转载自微信公众号GIS软件技术大会,版权归原作者及刊载媒体所有. 在GTC 2020『GIS基础软件新技术论坛』上,超图研究院副院长胡中 ...

  4. 设计与算法 | Google Photos Web UI

    作者 / Antin Harasymiv, UX Engineer, Google * 很多时候,体验设计和算法的联系会比想象中要紧密得多.本文将从代码和体验两个层面和大家深度分享. 几年前,我有幸成 ...

  5. 昨日关注:Google旧瓶装新酒 用遗弃技术开发Web新应用

    2005-3-19 [网络技术] Google旧瓶装新酒 用遗弃技术开发Web新应用 # 为此软件开发人员纷纷开始在blogs上发表见解.直到2月18日位于旧金山的咨询机构Adaptive Path的 ...

  6. Google 开发新的开源系统 Fuchsia

    google 最新os 下载 https://github.com/fuchsia-mirror/magenta 本文转自:http://www.oschina.net/news/76094/goog ...

  7. 使用Arquillian,Docker和Selenium使Web UI测试再次变得出色(第1部分)

    问题简介 大多数时候,当您需要为Web UI编写功能测试/端到端测试时,您最终会使用Selenium ,它可以被视为Java世界中用于Web UI测试的事实上的工具. 我确定您已经将其用于此类测试. ...

  8. Web开发之一:Web UI技术综述

    一.什么是UI?什么是UI设计师?    1.什么是UI        按照Wiki的解释: In the industrial design field of human–machine inter ...

  9. 谷歌的无痕模式有什么好处_为什么Google的新搜索结果设计是黑暗的模式

    谷歌的无痕模式有什么好处 重点 (Top highlight) Humans are self-training machines, and in the context of the interne ...

最新文章

  1. 基于 Spring Cloud 的微服务架构分析
  2. 如何画正太分布曲线_图解统计学 01 | 神奇的正态分布
  3. 计算机笔记本电脑加固态硬盘,电脑卡的同学注意了 这些本加SSD也是渣
  4. Spring中Map的key为对象引用的注入
  5. QT的QSvgGenerator类的使用
  6. SSM Automation 更新AMI镜像
  7. MongoDB分布式操作——分片操作
  8. 扩展Snackbar 使其支持居中显示
  9. 深入理解Delete(JavaScript)
  10. repeating 路由_CSS中带有示例的repeating-linear-gradient()函数
  11. [论文阅读] Automatic Polyp Segmentation via Multi-scale Subtraction Network
  12. Linux elf文件分析
  13. 记录点滴23(中秋、国庆篇)
  14. oralce 12c集群 ora-01033
  15. 转发小程序php,微信小程序 转发功能的实现
  16. Brownie Slicing
  17. Linux架设Jsp环境
  18. 数据结构中confusing的地方整理
  19. python scatter设置随机颜色_python – Matplotlib Scatter plot根据列表中的值更改颜色...
  20. 2004年11月网络工程师级试题

热门文章

  1. UC伯克利教授马毅投稿ICML,4个评审一致接收却遭AC一票否决
  2. Mac苹果电脑调整磁盘区域大小
  3. JAVA之线程池详解
  4. mysql_08_ yum(dnf)安装
  5. 利用JavaScript分别实现倒计时、跑马灯和打字机效果
  6. 可视化篇:Echarts3.0引入百度地图(更新)
  7. 二手车数据分析-爬取人人车二十余万条线上二手车数据
  8. PEP8 - Python 代码风格指南中英对照
  9. 线下支付场景的争夺成为巨头争战的主题
  10. 0基础快速入门Python,小白必看