AngularJS是一組用來(lái)開發(fā)Web頁(yè)面的框架、模板以及數(shù)據(jù)綁定和豐富UI組件,它支持整個(gè)開發(fā)進(jìn)程,提供web應(yīng)用的架構(gòu),無(wú)需進(jìn)行手工DOM操作,AngularJS很小,只有60K,兼容主流瀏覽器,與jQuery配合良好。
軟件介紹
AngularJS該怎么用,什么時(shí)候用?
AngularJS是下一代框架,其中每個(gè)組件都被設(shè)計(jì)成可以像一臺(tái)運(yùn)轉(zhuǎn)良好的機(jī)器一樣,以相互連接的方式與其他組件一起工作。AngularJS是將JavaScript MVC變得簡(jiǎn)單和正確。好吧,它并不是真正的MVC,讀下去,就能明白這是什么意思)。
MVC,不,MV*用正確的方式完成!
MVC,是Model-View-Controller的縮寫,是一種設(shè)計(jì)模式,即代碼應(yīng)該如何組織,應(yīng)用程序的不同部分如何分離,以達(dá)到正確的可讀性和調(diào)試。Model是數(shù)據(jù)和數(shù)據(jù)庫(kù)。View是用戶界面和用戶看到的東西。Controller是連接Model和View的主要紐帶。這就是目前市場(chǎng)上主要編程框架的三大支柱。而AngularJS的工作原理則是MV*,即Model-View-Whatever的簡(jiǎn)稱。Whatever是AngularJS告訴你可以在這里創(chuàng)建Model和View之間的任何一種鏈接。
不像其他任何編程語(yǔ)言的框架,MVC這三個(gè)獨(dú)立的組件,每個(gè)組件都要由程序員編寫然后連接,AngularJS幫助程序員,要求程序員只需要?jiǎng)?chuàng)建這些,其他的一切都會(huì)由AngularJS來(lái)處理。
與HTML在根級(jí)的互聯(lián)
AngularJS使用HTML來(lái)定義用戶的界面。AngularJS還可以讓程序員編寫新的HTML標(biāo)簽(AngularJS Directives),增加HTML代碼的可讀性和可理解性。指令是AngularJS為HTML帶來(lái)額外功能的方式。指令通過(guò)讓我們發(fā)明自己的HTML元素來(lái)實(shí)現(xiàn)。這也有助于使代碼成為DRY(Don't Repeat Yourself),這意味著一旦創(chuàng)建了一個(gè)新的指令,就可以在應(yīng)用程序中的任何地方使用。
HTML也被用來(lái)決定應(yīng)用程序的布線。HTML中的特殊屬性決定了應(yīng)用在哪里加載,每個(gè)元素使用哪些組件或控制器等。我們指定 "加載什么",但不指定 "如何加載"。這種聲明式的方法以一種所見即所得的方式極大地簡(jiǎn)化了應(yīng)用程序的開發(fā)。我們不需要花費(fèi)時(shí)間在程序如何流動(dòng)和協(xié)調(diào)各種移動(dòng)部件上,我們只需定義我們想要的東西,AngularJS就會(huì)處理好依賴關(guān)系。
數(shù)據(jù)處理變得簡(jiǎn)單
AngularJS中的數(shù)據(jù)和數(shù)據(jù)模型都是普通的JavaScript對(duì)象,人們可以直接在上面添加和更改屬性,也可以在對(duì)象和數(shù)組上隨意循環(huán)。
雙向數(shù)據(jù)綁定
AngularJS最強(qiáng)的功能之一。雙向數(shù)據(jù)綁定是指如果Model中的東西發(fā)生了變化,變化會(huì)瞬間反映到View中,反之亦然。這也被稱為反應(yīng)式編程,即假設(shè)正在編程a = b + c,在這之后,如果b和/或c的值發(fā)生變化,那么a的值將自動(dòng)更新以反映變化。AngularJS使用它的 "作用域 "作為Model和View之間的粘合劑,并使其中一個(gè)中的這些更新對(duì)另一個(gè)可用。
更少的書面代碼和易于維護(hù)的代碼
AngularJS中的所有內(nèi)容都是為了讓程序員最終能夠?qū)懗龈俚拇a,讓團(tuán)隊(duì)中的其他新人都能輕松維護(hù)和閱讀。信不信由你,一個(gè)人可以在不到10行代碼的情況下寫出一個(gè)完整的雙向數(shù)據(jù)綁定的應(yīng)用。試試吧,你就知道了
測(cè)試就緒
AngularJS具有依賴性注入功能,即只要需要,它就會(huì)照顧到為其控制器和服務(wù)提供所有必要的依賴性。這有助于通過(guò)使用創(chuàng)建和注入的模擬依賴關(guān)系,使AngularJS代碼為單元測(cè)試做好準(zhǔn)備。這使得AngularJS更加模塊化和易于測(cè)試,從而反過(guò)來(lái)幫助團(tuán)隊(duì)創(chuàng)建更強(qiáng)大的應(yīng)用程序。