迁移到Angular2 - >需要建议

时间:2016-06-05 10:02:20

标签: angularjs angular

一些背景知识:

我参与开发了一个巨大的,极其动态且可自定义的Angular 1 Web应用程序。

由于它如此庞大而充满活力,那里有很多观察者 - 至少在单一视图中有4K。

正如可以预料的那样,该应用程序遇到了严重的性能问题。大量的观察者使应用程序加载和一般响应时间非常长。

作为一种可能的解决方案,我正在考虑将几个“重”组件升级到Angular2 - 因此这些部件可以存在于ng2框架中并使用ng2更改跟踪 - 这要快得多。

在阅读迁移documentation时,我注意到了这一段:

  

当我们降级Angular 2组件然后从Angular 1使用它时,将使用Angular 1变化检测来监视组件的输入。

此时我想得到建议,只是为了确保我做出正确的决定:

由于我不会立即转换整个应用程序,而是逐步转换(指令指令),我应该采取哪个方向来改善ng2性能改进(例如ng2更改跟踪):

  • 一个。我应该“自下而上”迁移,例如顶级组件将是 保持ng1;而较低的水平将转换为ng2,或
    • 湾 “从上到下”迁移

就我个人而言,我更喜欢第一个选项(听起来对我来说风险较小),但是如果shell将内容转换为ng2时会重新定义ng1 - 这并不意味着(根据文档)我将被迫使用ng1改变ng2组件内的跟踪机制?或者我弄错了?

根据您的经验,哪种迁移方向证明自己更好?

谢谢

1 个答案:

答案 0 :(得分:2)

所以我在这里参加聚会有点晚了。 Angular团队的ngUpgrade内容非常棒,是一个可行的解决方案,但我认为它会创造更多可能值得的工作(取决于应用程序的大小)。

我所拍摄的将是一次升级单个模块而非一次升级组件/服务的模块化过程。即假设您的1.x应用程序被分解为模块,您可以开始重写第一个模块,例如"仪表板"模块或"收件箱"模块。之前我经历过这个过程,我们重新编写了我们应用程序的主页,一旦用户需要点击另一个页面,即#34;遗留代码",该网址已经/v1/显示他们& #39; d实际上去了另一个应用程序。这样我们在技术上有两个应用程序,但完全分开运行。

如果您仍在查看概念等升级,我一直在研究Angular 1.x到Angular 2 migration guide,这可能对您有所帮助:)