写点什么

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:002315
用户头像

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

关注

评论

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

Kotlin修炼指南(三),如何在Android-Studio下进行NDK开发

android 程序员 移动开发

Vue进阶(幺陆叁):vue项目启动后自动打开页面并设置默认浏览器

No Silver Bullet

Vue 11月日更

LayoutManager高端玩家,实现花式表格(1),安卓面试题高级

android 程序员 移动开发

LayoutManager高端玩家,实现花式表格,kotlin中文

android 程序员 移动开发

金九银十,我把阿里+字节+滴滴+美团+腾讯等Java岗位面试题用12万字总结出来了

Sakura

Java 编程 程序员 架构 面试

手把手教你,从零开始搭建Spring Cloud Alibaba!这份笔记太牛了

Java 编程 程序员 SpringCloud

记一次“U盘拔出”后重要文件丢失的恢复之旅

淋雨

EasyRecovery

Kotlin协程,flutterplugin打包aar

android 程序员 移动开发

Kotlin的自定义View,实现带弧形的进度条,软件开发项目经理面试题

android 程序员 移动开发

LeetCode,牛客面试必刷,看了这些,flutter面试

android 程序员 移动开发

kotlin 实战之委托总结,成为一名合格Android架构师

android 程序员 移动开发

lambda表达式(4)(Shawn),开发android

android 程序员 移动开发

LeakCanary核心源码解析,android开发从入门到精通素材

android 程序员 移动开发

FinClip通过中国信通院SDK安全专项测试

FinClip

Kotlin-新版来了,支持跨平台!,android视频开发面试

android 程序员 移动开发

Kotlin-基础---数据类型,android项目开发实战入门光盘文件

android 程序员 移动开发

Kotlin协程到底是怎么切换线程的?你是否知晓?(1),kotlin开源项目实战

android 程序员 移动开发

软件测试需要具备的技能(软技能硬技能)

程序员阿沐

编程 程序员 软件测试 教程 测试工程师

Kotlin-+-协程-+-Retrofit-,记录一次腾讯Android岗面试笔试总结

android 程序员 移动开发

Kotlin-风险高、RxJava-不老,Android-原生开发现状分析(1)

android 程序员 移动开发

Kotlin-风险高、RxJava-不老,Android-原生开发现状分析

android 程序员 移动开发

面试题:软件测试的流程

程序员阿沐

互联网 软件测试 计算机 测试工程师 测试流程

Kotlin协程到底是怎么切换线程的?你是否知晓?,写得太好了

android 程序员 移动开发

Kotlin学习手记——协程进阶,嵌入式android开发教程

android 程序员 移动开发

Spring Boot+Vue实现汽车租赁系统(毕设)

偶尔善良

MySQL redis Spring Boot Vue

就这?腾讯云高工熬夜手写'Java微服务学习笔记'也就让我月薪涨3k

Java spring 程序员 面试

又一巅峰神作!14年工作经验大佬出品“JVM&G1 GC深入学习手册”

Java 编程 程序员 JVM GC

Kotlin学习手记——基本类型,安卓开发kotlin推荐书籍

android 程序员 移动开发

Kotlin学习手记——构造器,【深夜思考】

android 程序员 移动开发

LC狂刷66道Dynamic-Programming算法题。跟动态规划说拜拜

android 程序员 移动开发

未来怎么样的测试工程师最值钱?

程序员阿沐

软件测试 软件工程师 自动化测试 测试开发 测试工程师

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