Angular学习记录一
http://angular.duapp.com/docs/guide/introduction
什么是Angular?
AngularJS是一個開發動態Web應用的框架。它讓你可以使用HTML作為模板語言并且可以通過擴展的HTML語法來使應用組件更加清晰和簡潔。它的創新之處在于,通過數據綁定和依賴注入減少了大量代碼,而這些都在瀏覽器端通過JavaScript實現,能夠和任何服務器端技術完美結合。
Angular是為了擴展HTML在構建應用時本應具備的能力而設計的。對于靜態文檔,HTML是一門很好的聲明式的語言,但對于構建動態WEB應用,它無能為力。所以,構建動態WEB應用往往需要一些技巧才能讓瀏覽器配合我們的工作。
通常,我們通過以下手段來解決動態應用和靜態文檔之間不匹配的問題:
- 類庫?- 一些在開發WEB應用時非常有用的函數的集合。你的代碼起主導作用,并且決定何時調用類庫的方法。例如:jQuery等。
- 框架?- 一種WEB應用的特殊實現,你的代碼只需要填充一些具體信息??蚣芷鹬鲗ё饔?#xff0c;并且決定何時調用你的代碼。例如:knockout,?ember等。
Angular另辟蹊徑,它嘗試去擴展HTML的結構來彌合以文檔為中心的HTML與實際Web應用所需要的HTML之間的鴻溝。Angular通過指令(directive)擴展HTML的語法。例如:
- 通過{{}}進行數據綁定。
- 使用DOM控制結構來進行迭代或隱藏DOM片段。
- 支持表單和表單驗證。
- 將邏輯代碼關聯到DOM元素上。
- 將一組HTML做成可重用的組件。
一個完整的前端解決方案
在構建WEB應用的前端時,Angular提供的不是一個部分解決方案,而是一個完整的解決方案。它能夠處理所有你寫過的混雜了DOM和AJAX的代碼,并能夠將它們組織的結構良好。這使得Angular在決定應該怎樣構建一個CRUD應用時顯得甚至有些“偏執(opinionated)”,但是盡管它“偏執”,它也嘗試確保使用它構建的應用能夠靈活的適應變化。下面是Angular的一些出眾之處:
- 構建一個CRUD應用時可能用到的所有技術:數據綁定、基本模板指令、表單驗證、路由、深度鏈接、組件重用、依賴注入。
- 可測試性:單元測試、端到端測試、模擬對象(mocks)、測試工具。
- 擁有一定目錄結構和測試腳本的種子應用。
Angular的可愛之處
Angular通過給開發者呈現更高層次的抽象來簡化應用的開發。和其他的抽象一樣,它也以損失靈活性為代價。換句話說,Angular并不是適合任何應用的開發,Angular考慮的是構建CRUD應用。幸運的是,絕大多數WEB應用都是CRUD應用。為了理解Angular適用哪些場合,知道它不適合哪些場合是很有幫助的。
對于像游戲和有圖形界面的編輯器之類的應用,會進行頻繁且復雜的DOM操作,和CRUD應用不同。因此,可能不適合用Angular來構建。在這種場景下,使用更低抽象層次的類庫可能會更好,例如:jQuery。
Angular之道
Angular是建立在這樣的信念之上的:即聲明式的代碼用在構建用戶界面和組裝軟件組件時更好,而命令式的代碼更擅長展現業務邏輯。
- 將應用邏輯與DOM操作解耦,會大大提高代碼的可測試性。
- 平等看待應用的測試和開發,測試的難度很大程度上取決于代碼的結構。
- 將前端與服務器端解耦,這樣使得前端的開發和服務器端的開發可以齊頭并進,實現兩邊代碼的重用。
- 框架在整個應用的開發流程中指導開發者:從用戶界面設計到實現業務邏輯,再到測試。
- 化繁為簡,化整為零總是好的。
Angular將把你從下面的苦海中解脫出來:
- 使用回調:回調會降低代碼的可讀性,是代碼變得零散。移除像回調之類的常見代碼是件好事,大幅移除因為JavaScript這門語言的不足而使你不得不寫的代碼,從而讓應用顯得更加清晰。
- 以編程的方式操作HTML DOM:操作HTML DOM是AJAX應用中很基礎的一部分,但它不靈活并且容易出錯。通過聲明式的語句,描述UI該怎樣隨著狀態的改變而變化,能讓你從低級的DOM操作中解脫出來。絕大多數Angular的應用開發中,開發者都不需要自己去寫低級的操作DOM的代碼,盡管如果你非要這樣的話,也是可以的。
- 在用戶界面中讀寫數據:AJAX應用中的絕大多數操作都是CRUD操作。一個典型的流程是從服務器端取到數據組裝成內部對象,然后寫到HTML的表單中,在用戶對表單進行修改之后,進行表單驗證,顯示表單驗證錯誤信息,然后將數據重新組裝成內部對象,再發給服務器。在這個流程中有很多重復的代碼要寫,而Angular消除了在這個流程中幾乎所有的重復代碼,使得代碼看起來只是在描述所有的執行流程,而不是所有的實現細節。
- 在開始前寫大量的初始化代碼:一般需要寫很多的基礎性的代碼才能完成一個基本的AJAX的Hello World應用。在Angular的應用中,你可以通過一些服務來初始化應用,這些服務都是以類似于Guice的方式進行依賴注入的。這會讓你很快進入功能開發。另外,你還能完全控制自動化測試的初始化過程。
轉載于:https://www.cnblogs.com/xihuafeiyu/articles/3741523.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Angular学习记录一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: setTimeout() setInte
- 下一篇: js常见事件