2014 年 Chrome 开发者峰会 - Polymer - 当前形势

Polymer 和 Web Components 是最近非常热门的话题,由于这个生态系统正在快速发展,开发者通常很难及时了解所有最新变化。

在 Chrome 开发者峰会上的发言中,Polymer 团队的工程经理 Matt McNulty 解释了什么是 Polymer,并概述了 Polymer 1.0 的路线图。

什么是 Polymer?

首先,Polymer 到底是什么?

Polymer 是一个库,可帮助您基于网络组件构建元素和应用。Web 组件是一套先进的新标准,可让开发者使用自己的自定义元素扩展 HTML 词汇。

Polymer 可帮助开发者更快地构建应用

由于 Web 组件设计为浏览器的新基元,因此它们功能非常强大,但级别也非常低,需要大量代码才能使用。

Polymer 让 Web 组件更贴心

Polymer 采用“糖”语法,使 Web 组件的运行变得更容易。它减少了您需要编写的样板代码量,并添加了声明式样式,因此创建 Web 组件就像编写 HTML 一样简单。

Polymer 实验

Polymer 开始了一项实验,目的是了解我们能否对网络组件标准执行 polyfill 并收集开发者的反馈,然后再将这些技术应用到所有浏览器中。随着越来越多的开发者开始使用 Polymer,它从只是 polyfill 变成包含各种生产力功能(数据绑定、属性更改观察器、自动节点查找等)的实际库。但所有实验都有结果,那我们是如何做到的呢?

Polymer 报告卡片需要改进

虽然许多开发者表示,在 Polymer 中使用 Web 组件能够提升表现力和工作效率,他们也表示满意,但同时也表示对性能和整体复杂性有所顾虑。

它突显了 Polymer 一直以来存在的一个自然紧张:一个是推动 Web 平台向前发展的实验,同时也创造了可供开发者依赖的有生产价值的内容。

即将发生的变更

Polymer 团队仔细研究了该库的每项功能,目标是打造一个更精简且可用于生产环境的版本,以便开发者能够放心使用。

Polymer 已被重构为一系列层。核心功能快速精简,而更高级的功能将由用户选择。对于大多数用例,核心功能应可满足开发者的需求。

Polymer 已重构为多层

简化的数据绑定

Polymer 的数据绑定系统也经过了显著的优化,以提高性能。按照分层方法,双向绑定现在是选择启用的,默认设置为单向绑定。此外,已发布的属性类型已变得明确,属性更改现在会触发一个事件,以帮助来自不同库的元素更轻松地进行通信。

数据绑定已简化

更精简的 Shadow DOM

Shadow DOM Polyfill 是一项令人惊叹的工程壮举。它设计得全面且符合规范,这对于全面测试平台基元非常重要,但遗憾的是,它针对 Polymer 未使用的功能引入了一些性能瓶颈。

Polymer 的下一个版本将采用另一种方法,该层将采用 shim 样式的层,该层仅填充 Polymer 所需的内容。

Shim Shadowdom 快得多

对于通用的非 Polymer Web 组件,现有的 Polyfill 仍然有效。

迁移到 webcomponents.org

说到 Polyfill,这些 Polyfill 也会变成新的家。目前,许多开发者不清楚 Polymer 与 Web 组件之间的关系。有些人认为您必须全部使用 Polymer 才能使用 Web 组件,而实际上,您只需要 Polyfill。

为了更明确地区分这两者,我们正将 polyfill 移至 webcomponents.org,并使其现在已重命名为 webcomponents.js

Polyfill 迁移到 webcomponents.org

此举旨在帮助其他库作者充分利用 polyfill,而不会造成任何混淆。Polymer 团队将继续为 Polyfill 贡献自己的力量,但希望此次变更能使 Polymer 成为社区的共享资源。

成果

那么,所有这些变化会带来哪些成效?

速度

在 Chrome 上,Polymer 的速度提升到原来的 5 倍,而在 Safari 上,速度提升到原来的 8 倍

现在,Polymer 在 Safari 中的运行速度加快了 8 倍

文件大小

文件大小也缩减了 87%,从 123KB 减少到 15KB(经过 gzip 压缩后 6KB)。

Polymer 现在减小了 87%

路线图

在下一版本中,将会进行一些 API 破坏性更改,以新版本号 (0.8) 表示,但团队希望明确说明这不是重写内容。将当前项目从 Polymer 0.5 迁移到 0.8 应该很容易。

Polymer 团队还制定了路线图,让开发者更清楚地了解即将发布的版本。

Polymer 路线图,第 1 季度推出 Beta 版,第 2 季度为 1.0

0.8 预览版现已作为 GitHub 上的一个分支提供(尽管它仍处于积极开发阶段,且缺少相关文档)。我们计划于 2015 年第一季度推出 0.9 官方测试版,2.0 版本将于第二季度的某个时间推出。

实验已结束

随着 Polymer 的最新变化,其背后的团队正在为 Web 组件奠定基础,使其成为每个开发者堆栈中不可或缺的一部分。如果您是 Web 组件的新手,那么现在正是了解并熟悉这些变革性技术的好时机。如果您已在使用组件(和 Polymer),那么前景无可限量。请随时关注 Polymer 博客,了解所有最新动态,并注册 Polymer 邮寄名单,以便提出问题或发表评论。祝您编程愉快!