Angular2——為克服Html在構建應用上的不足而設計!

?? ? AngularJS 誕生于2009年,由Misko Hevery 等人創建,后為Google所收購。201010月,Google 首次發布了自己的 Web 開發框架,名為 AngularJS,也叫 Angular,或者簡稱為 ng。是一款優秀的前端JS框架,已經被用于Google的多款產品當中。AngularJS有著諸多特性,最為核心的是:MVC、??榛?、自動化雙向數據綁定、語義化標簽、依賴注入等等。?2016918日,Angular2正式發布。?

?? ? Angular2是為了克服HTML在構建應用上的不足而設計的。HTML是一門很好的為靜態文本展示設計的聲明式語言,但要構建WEB應用的話它就顯得乏力了。所以我做了一些工作(你也可以覺得是小花招)來讓瀏覽器做我想要的事。

?? ? 通常,我們是通過以下技術來解決靜態網頁技術在構建動態應用上的不足:

?? ? 類庫類庫是一些函數的集合,它能幫助你寫WEB應用。起主導作用的是你的代碼,由你來決定何時使用類庫。類庫有:jQuery

?? ? 框架框架是一種特殊的、已經實現了的WEB應用,你只需要對它填充具體的業務邏輯。這里框架是起主導作用的,由它來根據具體的應用邏輯來調用你的代碼??蚣苡校?/span>knockout、sproutcore等。

?? ? Angular2使用了不同的方法,它嘗試去補足HTML本身在構建應用方面的缺陷,它存在八大??櫸直鷂?/span>???/span> (module),組件 (component),模板 (template),元數據 (metadata),數據綁定 (data binding),指令 (directive),服務 (service),依賴注入 (dependency injection)。

?? ? 如果要寫一個Angular2Hello World應用相當簡單,分三步走:

1. 引入Angular2預定義類型

import {Component,View,bootstrap} from “angular2/angular2”;

importES6的關鍵字,用來從??櫓幸肜嘈投ㄒ?。在這里,我們從angular2??榭庵幸肓巳隼嘈停?/span> Component類、View類和bootstrap函數。

2. 實現一個Angular2組件

實現一個Angular2組件也很簡單,定義一個類,然后給這個類添加注解: 1. @Component({selector:”ez-app”})

  1. @View({template:”<h1>Hello,Angular2</h1>”})
  2. class EzApp{}

? ? class也是ES6的關鍵字,用來定義一個類。@Component现在用建行买彩票都是給類EzApp附加的元信息, 被稱為注解/Annotation。@Component最重要的作用是通過selector屬性(值為CSS選擇符),指定這個組件渲染到哪個DOM對象上。[email protected]最重要的作用是通過template屬性,指定渲染的模板。

3. 渲染組件到DOM

將組件渲染到DOM上,需要使用自舉/bootstrap函數,通過這三部我們就輕而易舉的將起組件實現。

? ? Angular2試圖成為WEB應用中的一種端對端的解決方案。這意味著它不只是你的WEB應用中的一個小部分,而是一個完整的端對端的解決方案。這會讓AngularJS在構建一個CRUD(增加Create、查詢Retrieve、更新Update、刪除Delete)的應用時顯得很固執(原文為 opinionated,意指沒有太多的其他方式)。但是,盡管它很固執,它仍然能確保它的固執只是在你構建應用的起點,并且你仍能靈活變動。AngularJS的一些出眾之處如下:

? ??構建一個CRUD應用可能用到的全部內容包括:數據綁定、基本模板標識符、表單驗證、路由、深度鏈接、組件重用、依賴注入。

? ??測試方面包括:單元測試、端對端測試、模擬和自動化測試框架。

? ? 具有目錄布局和測試腳本的種子應用作為起點。

? ??但其實Angular2并不是萬能的。通過為開發者呈現一個更高層次的抽象來簡化應用的開發。如同其他的抽象技術一樣,這也會損失一部分靈活性?;瘓浠八?,并不是所有的應用都適合用AngularJS來做。AngularJS主要考慮的是構建CRUD應用。幸運的是,至少90%WEB應用都是CRUD應用。但是要了解什么適合用AngularJS構建,就得了解什么不適合用AngularJS構建。如游戲,圖形界面編輯器,這種DOM操作很頻繁也很復雜的應用,和CRUD應用就有很大的不同,它們不適合用AngularJS來構建。像這種情況用一些更輕量、簡單的技術如jQuery可能會更好。化繁為簡,化簡為零總是好的。二angular2能將你從一些噩夢中解脫出啦,如:使用回調,手動編寫DOM元素的代碼,對UI界面讀寫數據等等,不過最主要的還有一點,你在開始前不用去寫大量的基礎性代碼,讓你很快的進入你應用的具體開發當中去,而且你還能能全盤掌握自動化測試的初始化過程。