Angular提供了改进后的迁移路径,包括ng-upgrade组件
Angular团队刚刚发布了从Angular 1平滑地迁移至Angular 2这一计划的 更多信息 。
在ng-conf 2015大会上,Angular团队表示,新的路由功能可以进行增量式的升级,每次更新一个视图。在这篇博客文章中,Brad Green表示:“从我们收到的反馈来看,虽然人们认可新的路由功能确实能够增量式升级,但这种增量做得还不够。因此,我们对迁移计划进行了重新审视与设计……”
新的迁移系统的强大能力来自于一个新的组件,名为ng-upgrade,它能够处理以下这些方面的交互:
- 依赖注入
- 组件嵌套
- Transclusion (嵌入)
- 变更检测
一旦ng-upgrade的工作完成,开发者就能够混合并搭配使用Angular 1与2的服务、组件和视图。Green说道:“ng-upgrade库会自动让Angular 1中的可注入对象在Angular 2中可用。这也意味着你为Angular 1应用所设计的服务可以任意地注入Angular 2的组件或服务中了。”与其让新版本通过一种不完善的方式模拟旧版本中的行为,更好的方式是让两个版本的引擎各自执行对应的代码。
最终结果就是,开发者能够逐步地将某个应用从Angular 1迁移至Angular 2中。
不过,新的路由功能也并未停止开发。Green向InfoQ透露,在即将发布的一份开发者指南中,其中会引用最新的 路由API文档 。
这份迁移计划对于那些还在担心是否要继续编写新的Angular 1项目的开发者来说是一个好消息。用户escobar在 Hacker News讨论版 中就表示,他认为此次的迁移计划是一个良好的举措:
我在工作中的几个新应用中使用了Angular2以进行评估,但很快就放弃它了,因为直至今日为止,新版本的迁移路径始终很不明确。如果缺少迁移路径,在眼下这一时刻选择在新应用中使用v1有些愚蠢,但v2又完全没有为在生产环境中使用做好准备。
Green表示,他们正在计划撰写关于迁移的更多博客文章,包括一个详细的指南以及代码示例。Angular团队也分享了一份 设计文档 ,其中描述了有关新的迁移计划背后所涉及的策略的更多细节。新的ng-upgrade组件目前还不可用,但应当会随着Angular 2 Beta版本一起推出。只是目前还没有Beta版本推出的明确日期,Green向InfoQ表示,在发布Beta版本之前,他们必须完成以下工作:
- 在4周时间内不再出现破坏性的变更
- 完成“语法糖”,让核心API与工具的使用体验更佳
- 完成开发者指南的大约前20个部分,目前已经完成了其中的4个部分
查看英文原文: Angular Offers Refined Migration Path with ng-upgrade
</div> </div>