写点什么

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

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

关注

评论

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

一文看懂MySQL 5.7和MySQL 8到底有哪些差异?

树上有只程序猿

MySQL MySQL 5.7 MySQL 8.0

一图看懂CodeArts Release三大特性

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 华为云CodeArts

项目管理必备神器!10款好用的在线看板工具推荐。

彭宏豪95

项目管理 效率工具 软件推荐 在线白板 看板工具

微软曝光!ChatGPT 真实参数只有 200 亿?大模型评测基准已经失去意义?丨 RTE 开发者日报 Vol.76

声网

如何使用Java调用商品详情API

Noah

新一代云原生可观测平台之CCE服务监控篇

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 华为云CCE容器服

软件测试/测试开发丨利用ChatGPT 生成自动化测试脚本

测试人

软件测试

云图说|新一代Serverless应用托管引擎——CAE

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 华为云Serverless

获评AI基础软件「领导者」,九章云极DataCanvas公司技术创新能力最强!

九章云极DataCanvas

ApeCoin DAO猿岛质押游戏系统DAPP开发

薇電13242772558

NFT

After Effects 2024 for Mac(AE2024视频特效工具)v24.0.1完整激活版

mac

苹果mac Windows软件 视频特效软件 After Effects 2024 AE2024

揭秘!自动化测试效率提升30%如何达成

HarmonyOS开发者

如何使用 NFTScan NFT API 在 BNB Chain 网络上开发 Web3 应用

NFT Research

NFT\ NFTScan API 接口

喜讯!INFINI Easysearch 在墨天轮数据库排名中挺进前30!

极限实验室

数据库 easysearch 极限科技 数据库排名 搜索型数据库

广汽传祺E9上市,3DCAT实时云渲染助力线上3D高清看车体验

3DCAT实时渲染

云渲染 实时云渲染 汽车三维可视化

AutoCAD 2023 for Mac(cad2023) v2023.2.1注册激活版

mac

苹果mac Windows软件 AutoCAD 2023 三维设计软件 cad2023

带你认识一下多模态对比语言图像预训练CLIP

华为云开发者联盟

人工智能 华为云 科技 华为云开发者联盟 多模态对比

亚洲专业美发行业领军企业汉高中国签约赛博威,以TPM营销费用管理推进企业业务数字化改革

赛博威科技

Tower for mac(Git客户端软件) v10.1.1完整激活版

mac

Tower 苹果mac Windows软件 Git客户端软件

能力惊艳!DingoDB多模向量数据库完成首批向量数据库产品测试

九章云极DataCanvas

StoneDB-8.0-V2.1.0 企业版正式发布!免费公测活动正在进行中,快来参加!

StoneDB

MySQL 数据库 HTAP StoneDB

亚信科技斩获“鼎新杯”多项大奖!AntDB数据库在信创赛道再创佳绩

亚信AntDB数据库

AntDB数据库

3分钟教你linux服务器无损迁移备份Jenkins

javaNice

Java Java’

nebula-br local-store 模式,快速搭建主备集群实践

NebulaGraph

容灾备份

企业服务诞生了第一座企业掘金的数据枢纽——瓴羊港

ToB行业头条

软件测试/测试开发丨UbuntuServer环境准备

测试人

软件测试

低代码助力破解IT开发失败的概率

互联网工科生

软件开发 低代码 IT开发

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