我有一个包含实时数据的生产站点。
现在,我想将网站从角度v1.5迁移到v2。在阅读官方角度迁移指南时,似乎我必须重写大量代码。迁移的最佳方法是什么?
从头开始以角度2写出所有内容。
或
按照官方角度文档
答案 0 :(得分:0)
取决于。
无论如何,你必须重写很多代码。这是肯定的。而且没有简单的方法。
我将与您分享两个想法(方法),然后只是从下往上重写所有内容:
使用ngForward
方法。
在ngForward
方法中,我们实际上并没有升级现有的Angular 1.x应用程序 - 我们正在创建一个环境,其中这些1.x应用程序的行为类似于Angular 2应用程序。换句话说,我们可以逐步重写我们的Angular 1.x应用程序,使其像Angular 2应用程序一样工作。然后,我们可以在现有应用程序的顶部为此1.x应用程序进一步增加新的Angular 2功能。
在this blog post中了解详情。
使用ngUpgrade
方法。
通过使用ngForward
方法,我们可以在现有的Angular 1.x应用程序之上以Angular 2.0的方式编写代码。然而,对于某些人来说,这种方法可能并不舒服,因为对其可维护性的担忧以及与未来Angular版本的向后兼容性可能是一个问题。从长远来看,ngForward
方法肯定会导致庞大的Angular 1.x应用程序出现问题。使用ngUpgrade
方法已经在很大程度上确定了这个问题。 ngUpgrade
方法具有可从official Angular website获得的全面文档。
您需要根据具体的用例,项目目标等做出决定。
致谢:我从this tutorial了解到了这一点。
答案 1 :(得分:0)
还有第三种方法:在Angular 2中创建并行代码库,并通过url导航将其与旧的Angular 1x代码链接。除了添加新的导航URL之外,您无需修复或更改以前代码库的任何LOC。这样可以节省您的时间。您的新代码将具有纯Angular 2,在页面上同时没有1.5和2x的任何混合。唯一的挑战是在请求之间共享用户状态和数据,因为您不能再使用共享服务或工厂了,但这是可行的。
我的类似迁移历史最近发表在this blog post。