写点什么

Polymer 2.0 版本引入突破性改变,升级迁移已平滑过渡

  • 2017-01-03
  • 本文字数:1000 字

    阅读完需:约 3 分钟

Polymer 2.0 版本用 Custom Elements API v1 替换了 v0,弃用了 Polymer.dom,并以 Shadow DOM 取而代之。不过这个升级迁移过程并没有看起来那么大难度,因为他们推出了一个兼容层,使得用 Polymer 1.7+ 版本编写的代码能够在 2.0 版本中运行。

Polymer 1.+ 版本是基于 Custom Elements API v0 构建的。Custom Elements API v0 使用 document.registerElement() 进行初始化自定义元素,现已被弃用。那么如何在 Custom Elements API v1 下创建新元素呢?Polymer 2.0 版本改用 customElements.define() 进行创建。API 的这个最新版本很快将被所有主流浏览器所支持。Chrome 54+ 已经实现了该 API,Safari TP 也已在使用,而 Edge 和 Firefox 对该 API 的支持工作也在进行中。(更多关于各浏览器对 Custom Elements API v1 的支持情况可以在这里找到。)与此同时,这个填充代码(polyfill)可以加强所有浏览器对自定义元素的支持。

Polymer 2.0 版本的另一个重要改变是使用 Shadow DOM v1 代替 Polymer.dom 。有些浏览器已运行了 Shadow DOM v1,有些则正在开发。Shady DOM 从 Polymer 中分离出来作为填充代码。

在数据系统方面,Polymer 2.0 版本推出了许多增强功能:对对象和数组不再进行脏数据检查(dirty checking),对数组的处理更加简单,以及对数据变更通知进行分批,

为避免这些突破性改变对系统造成损害,Google 推出了一个兼容层,使得用Polymer 1.7+ 版本创建的自定义元素能够在2.0 版本中运行。开发人员只需要“修改现有代码,使其在内容分布和样式上符合Shadow DOM v1 API 的要求,同时适应在更改Custom Elements v1 API 时导致的变更”。Polymer 还引入了混合元素(hybrid elements)使其与Polymer1.x 兼容。将来某一时刻,将有工具自动把Polymer 1.x 创建的自定义元素转换为2.0。

Polymer 2.0 版本使用 ES6 中的类语法(class syntax) 对自定义元素进行定义。Polymer 1.x 版本中的工厂方法仍可以通过兼容层进行使用。

开发人员可以使用 Polymer 2.0 Preview ,但它现在还处于开发过程中,还不能被用于生产环境。Polymer 2.0 GA 将于 2017 第一季度发布。

查看英文原文 Polymer 2.0 Introduces Breaking Changes But the Migration Has Been Smoothed


感谢薛命灯对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-01-03 18:001918
用户头像

发布了 22 篇内容, 共 51314 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

Python代码阅读(第2篇):数字转化成列表

Felix

Python 编程 Code Programing 阅读代码

graphql计算指令之@filter:查询中实现集合过滤

杜艮魁

开源 后端 低代码 graphql

80后程序员感慨中年危机,如何设计一个优雅的RESTFUL的接口

Java 程序员 后端

2021金三银四,开发者进阿里必看的30道经典数据库面试题【附详细解析

策划Java工程师

Java 程序员 后端

3个月学会Java开发!Git-如何优雅地回退代码(1)

Java 程序员 后端

Linux 网络管理技术 OSI 七层模型和 TCP/IP 四层模型

学神来啦

Linux 运维 IP

从河南暴雨、疫情反弹看区块链“灾疫”治理

CECBC

Hologres揭秘:深度解析高效率分布式查询引擎

阿里云大数据AI技术

2021年五面蚂蚁,从单体到分布式,必须解决的四个问题

策划Java工程师

Java 程序员 后端

2021最新Java面试真题解析!1

策划Java工程师

Java 程序员 后端

2021BTAJ面试真题详解,16条代码规范建议,快看看自己做到没

Java 程序员 后端

2021Java面经:Android屏幕适配-重点盘点

策划Java工程师

Java 程序员 后端

2021年Java开发实战!仿微信的网络聊天室项目开发【完整源码讲解

策划Java工程师

Java 程序员 后端

2021年Java知识体系总结,部门老大:redis-分布式锁再这么用

策划Java工程师

Java 程序员 后端

Selenium 4以后,再不相见的API

FunTester

自动化 API selenium

2021程序员进阶宝典!《零基础(1)

策划Java工程师

Java 程序员 后端

区块链技术如何有效应对气候变化

CECBC

面试官:你了解JVM的锁优化吗?

百度开发者中心

Java 最佳实践 方法论 语言 & 开发

防火墙 Keepalived 异常双活恢复后部分外网访问中断问题分析

Qunar技术沙龙

运维 防火墙 网络 故障诊断 keep-alive

2021Java大厂面试集合,java多线程

策划Java工程师

Java 程序员 后端

graphql计算指令之@sortBy:查询中实现列表字段排序

杜艮魁

开源 后端 低代码 graphql

5分钟搞定!从Java底层分析多线程行为

Java 程序员 后端

下一个颠覆的领域:区块链如何影响审计行业?(下)

CECBC

ironSource 在 2021 ChinaJoy 举办多场活动赋能中国开发者

2021Java春招面试真题详解,Git-如何优雅地回退代码

策划Java工程师

Java 程序员 后端

【最不佳实践】Serverless应用优化四则

刘宇

Serverless 优化

编译脚本:编写CMakeFile(一)

正向成长

CMakeFile

关于Spring注解开发教程,打包全送你

华为云开发者联盟

Java spring 容器 注解 组件

2021Java笔试题总结!Java个人学习之旅(第十天)

策划Java工程师

Java 程序员 后端

双非本化学跨专业,投岗阿里/滴滴后端三面,最终拿下offer

编程菌

Java 编程 程序员 面试 计算机

15个经典面试问题,酸!校招进字节跳动

Java 程序员 后端

Polymer 2.0版本引入突破性改变,升级迁移已平滑过渡_开源_Abel Avram_InfoQ精选文章