将AngularJS 1.x迁移到AngularJS 2.x

时间:2016-10-06 06:33:46

标签: angularjs angular angularjs-directive

我正在学习AngularJS 2从Angular 1.x迁移我的应用程序。我发现,它与Angular 1完全不同。如果我从Angular 1迁移到Angular 2,我会得到什么好处。我喜欢在迁移中获得你的建议,好处,经验和困难。

1 个答案:

答案 0 :(得分:2)

Angular 2刚刚完全恢复了框架。

  

绩效改进:

与Angular 1.x相比,Angular 2.0的性能有所提升。 Bootstrap现在是角度为2.o的平台特定。因此,如果应用程序是来自浏览器的引导程序,它将调用与移动应用程序相比的不同引导程序。因此对于浏览器引导程序包:使用angular2 / platform / browser.dart。

对于移动加载,Apache Cordova可用于减少加载时间。

  

移动支持:

Angular 1.x专为响应式和双向绑定应用而设计。没有移动支持。虽然还有其他库可以在移动设备上运行angular 1.x. Angular 2.0是在考虑面向移动的架构时制作的。有一些库,即Native脚本,可以快速帮助移动Angular 2移动开发。使用Angular构建真正的原生移动应用程序NativeScript。它还在浏览器和移动应用程序上以不同的方式呈现相同的代码。

  

打字稿:

Typeular(TS)在Angular 2中大量使用.Google目前正在使用DART进行编码。 DART或TypeScript可用于Angular 2.学习TypeScript非常好,因为其他框架和库,即REACTJS也使用TS。因此,如果可以学习TS,那么很容易在项目中实现REACTJS和其他库。

如果任何开发人员来自JAVA,.NET背景TypeScript非常容易学习。

  

Angular 2中没有$ Scope:

Angular 2不再使用$ scope来粘合视图和控制器。当您在Angular 1中进行编码然后想要为项目尝试Angular 2时,这是最大的问题之一。但是,如果有人来自JAVA,.NET /后台可以轻松获取,因为语法更类似于Java。

function($scope) { $scope.comparison =”Angular 1 vs Angular 2” } //is replaced by constructor() { this.comparison =”Angular 1 vs Angular 2” }

  

基于组件的编程:

就像ReactJs一样,AngularJs也在使用基于组件的编程。组件创建较少依赖和更快的实体。我Angular 1我们有模块化编程概念。模块化编程是从JQuery代码很乱的事实演变而来的。现在组件UI使组件快速。

@Component({ selector: 'AngularComparison' }) @View({ templateUrl: './components/example/AngularComparison.html' }) export class AngularComparison { constructor() { this.comparison= “Angular 1 vs Angular 2”; } }

除此之外,全新的Angular 2框架还有其他改进:

  1. 注射器发生了显着变化。儿童注射器是Angular 2中的新东西。
  2. Angular 1中有很多指令。
  3. Angular 2只有Component,Decorator和Template指令。
  4. 基于JSON的Route配置更容易编辑。
  5.   

    注意事项

    1. 首先,Angular 2不是角度1的升级。 Angular 2完全被重写。
    2. Angular 2正在使用 Typescript 这是javascript的超级集合(它并不仅仅意味着打字稿,dart也是如此)。
    3. Angular 1.x并未构建移动支持,而Angular 2则面向移动。
    4. Angular 1核心概念 $ scope ,您在角度2.0中找不到 $ scope 。 Angular 2使用 zone.js 来检测更改。请参阅以下代码。
    5. Angular 1.x控制器消失了。我们可以说控制器在Angular 2中被“组件”替换。