angular1和angular2的區(qū)別總結(jié)

  1. 編程語言的不同。angular1.x是JavaScript,可以直接在瀏覽器中運(yùn)行,而angular2是TypeScript,只有經(jīng)過編譯后才能在瀏覽器中運(yùn)行,所以它必須使用構(gòu)建工具。

  2. 控制器Controller的改變。在1 中它是非常重要的,用于封裝視圖控制邏輯,而2中這個(gè),開發(fā)模式改為了模塊化開發(fā),去除了它。

  3. 作用域Scope。在2中沒有$Scope,它使用zone.js來記錄監(jiān)測變化;

  4. 指令。在2中指令使用符號,例如:ngFor、*ngIf;指令不能直接嵌套使用,所以它增加了一個(gè)<ng-container></ng-container>標(biāo)簽來包裹指令。

  5. 過濾器。1用:filter。在2中名字改為了Pipe,增加asyc、slice、parcent。

  6. 依賴注入。在2中只有一個(gè)依賴注入機(jī)制。

    constructor(thisIsDemo:ThisIsDemo){
    this.thisIsDemo=thisIsDemo;
    }

  7. 組件生命周期。1中沒有明確的生命周期機(jī)制。在2中有精心設(shè)計(jì)的生命周期:‘

    • ngOnlnit:當(dāng)Angular初始化完成數(shù)據(jù)綁定的輸入屬性后,用來初始化指令或者組件;
    • ngDoCheck:用來檢測所有變化(無論是Angular本身能檢測還是無法檢測的),并作出相應(yīng)行動。在每次執(zhí)行“變更檢測”時(shí)被調(diào)用;
    • ngAfterContentInit:當(dāng)Angular把外來內(nèi)容投影進(jìn)自己的視圖之后調(diào)用。
    • ngAfterContentChecked: 當(dāng)Angular檢查完那些投影到自己視圖中的外來內(nèi)容的數(shù)據(jù)綁定之后調(diào)用。
    • ngAfterViewInit :在Angular創(chuàng)建完組件的視圖后調(diào)用。
    • ngAfterViewChecked:在Angular檢查完組件視圖中的綁定后調(diào)用。
    • ngOnChanges :當(dāng)Angular設(shè)置了一個(gè)被綁定的輸入屬性后觸發(fā)。該回調(diào)方法會收到一個(gè)包含當(dāng)前值和原值的changes對象。
    • ngOnDestroy:在Angular銷毀指令或組件之前做一些清理工作,比如退訂可觀察對象和移除事件處理器,以免導(dǎo)致內(nèi)存泄漏。
    生命周期的順序
    • ngOnChanges:當(dāng)被綁定的輸入屬性的值發(fā)生變化時(shí)調(diào)用,首次調(diào)用一定會發(fā)生在ngOnInit之前。
    • ngOnInit:在第一輪ngOnChanges完成之后調(diào)用。
    • ngDoCheck:在每個(gè)Angular變更檢測周期中調(diào)用。
    • ngAfterContentInit:當(dāng)把內(nèi)容投影進(jìn)組件之后調(diào)用。
    • ngAfterContentChecked:每次完成被投影組件內(nèi)容的變更檢測之后調(diào)用。
    • ngAfterViewInit:初始化完組件及其子視圖之后調(diào)用。
    • ngAfterViewChecked:每次做完組件視圖和子視圖的變更檢測之后調(diào)用。
    • ngOnDestroy:當(dāng)Angular每次銷毀指令/組件之前調(diào)用。
  8. 雙向數(shù)據(jù)綁定。[(ngModel)]的寫法替換了ng-model。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 版本:Angular 5.0.0-alpha AngularDart(本文檔中我們通常簡稱 Angular ) 是...
    soojade閱讀 851評論 0 4
  • 組件的生命周期 指令和組件的實(shí)例有一個(gè)生命周期分別是:新建、更新和銷毀。每個(gè)接口都有唯一的一個(gè)鉤子方法,它們的名字...
    LeiGEGE閱讀 1,059評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,914評論 18 139
  • 黑熊/文 近段時(shí)候,在看許多理財(cái)達(dá)人,都提倡理財(cái)小白進(jìn)行“定投”(定期投資)。但是對于“定投”真的是“可以躺著把錢...
    黑熊愛折騰閱讀 663評論 8 5
  • 1.繼續(xù)找好項(xiàng)目,與相關(guān)的人問有沒好項(xiàng)目 2.工作后生活愉快 3.看到問題要修正
    親愛的小玩子閱讀 167評論 0 0