Angular 1與 Angular 2之間的一些差別


  現在在用ng1.5.8做一個項目,ng的優點和特性我就不用多說了,ng1在陸續更新到1.5/1.6后就沒再推出新版本了,ng2已經面世測試很久了,如同很多系統和框架一樣,每個大的版本更新都會有新特性加入進來,雖然還沒有用ng2做過企業級項目,平時也了解了很多ng2的改進的地方,下面就來梳理一下ng1和ng2之間一些差異;

  • Angular2不是從Angular1升級過來的,Angular2是重寫的,所以他們之間的差別比較大,不是你用過1就能直接上手2的,計划可以認為是一個新的框架;
  • Angular2使用了javascript的超集‘Typescript’,所以angular1和angular2從設定之初就是不一樣的;
  • Angular1.x在設計之初主要是針對pc端的,對移動端支持較少(當然也有其他一些衍生框架如ionic),而Angular2是設計包含移動端的;
  • Angular 1的核心概念是$scope,但是angular2中沒有$scope,angular2使用zone.js來記錄監測變化;
  • Angular 1 中的控制器在angular2中不再使用,也可以說控制器在angular2中被‘Component’組件所替代:

////Angular 1.x using Controller and $scope.........
var myApp = angular
 .module("myModule", []) 
.controller("productController", function($scope) {
var prods = { name: "Prod1", quantity: 1 }; 
$scope.products = prods;
});
 
///Angular 2 Components using TypeScript........
import { Component } from ‘angular2/core’;
@Component({
 selector: ‘prodsdata’,
 template: `
 <h3>{{techncalDiary}}</h3> `
})
export class ProductComponent {
 prods = { name: ‘Prod1’, quantity: 1 };
}
  • Angular 2中, 指令的結構、用法作了一些調整,比如1中的ng-repeat被*ngFor替代
///Angular 1.x structural directives:........
<ul>
     <li ng-repeat="item in items">
         {{item.name}}
     </li>
</ul>
 
///Angular 2 structural directives:.............
<ul>
     <li *ngFor="#item of items">
         {{item.name}}
     </li>
</ul>
  • Angular 2中, 自帶原始指令在使用的時候要加上哈希(#)前綴
<div *ngFor="#technicalDiary of technicalDiries">
  • 雙向數據綁定: [(ngModel)]的寫法替換了ng-model
///Angular 1.x, two-way data binding using 'ng-model'..........
<input ng-model="technology.name"></input>
 
/////In Angular 2,two-way data binding using '[(ngModel)]'..........
<input [(ngModel)]="http://technology.name"></input>
  • Angular 2主要的性能優化改進是使用了分層依賴注入系統。 Angular 2實現了基於單向樹的變化檢測,這再次提高了性能;這些優化改進是的angular2的速度比angular1的速度提高很多;
  • Angular 2的大小是20kb左右,相對於angular1體積減少很多,在移動端的應用中,流量方便更占優勢;
  • 支持影子 DOM;
  • 支持 Android 和 iOS 的原生移動渲染;
  • 支持服務端渲染

總結:

  很多人覺得從angular1轉向angular2的時候學習曲線陡峭,所以在進軍angular2的時候還是先做點預習功課比較好,也是因為改動較大,對angular2的設計思想、原生組件寫法和工作原理有一定的了解,學習使用的過程中也更好跨階。

  盡管angular2還在應用測試階段,但是新版本相對於angular1有了長足的優化改進,相信它會越來越多的被應用到各個應用開發中,並且angular2只會load應用所需的組件(components),這也是個很好的改進,一些統計網站上的數據顯示angular的速度比angular1快五倍,不得不說這次angular2的改版升級是非常給力的;本篇列舉了一些本人針對angular2新特性的理解,很多point沒有寫出來(有些還不很了解熟悉),開發正式項目后或者了解更多新特性后再慢慢填補更新;

 

  原文地址Angular 1與 Angular 2之間的一些差別薛陳磊 | Share the world


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM