大家好肴沫,我是IT修真院成都分院第10期學員李勁宏,一枚正直純潔善良的web程序員蕴忆,今天給大家分享一下angularJS.初學angular颤芬,寫的不好,請見諒套鹅。
angular是什么站蝠?
AngularJS[1] 誕生于2009年,由Misko Hevery 等人創(chuàng)建卓鹿,后為Google所收購菱魔。是一款優(yōu)秀的前端JS框架, 已經(jīng)被用于Google的多款產(chǎn)品當中吟孙。AngularJS有著諸多特性澜倦,最為核心的是:MVC、模塊化杰妓、雙向數(shù)據(jù)綁定藻治、語義化標簽、依賴注入等等巷挥。
AngularJS是為了克服HTML在構建應用上的不足而設計的桩卵。HTML是一門很好的偽靜態(tài)文本展示設計的聲明式語言, 但要構建WEB應用的話它就顯得乏力了倍宾。AngularJS通過MVC模式(MVC)功能增強基于瀏覽器的應用雏节,使開發(fā)和測試變得更加容易。
通常高职,我們是通過js來解決靜態(tài)網(wǎng)頁技術在構建動態(tài)應用上的不足钩乍;但是原生js代碼量會很大;
類庫 - 類庫是一些函數(shù)的集合初厚,它能幫助你寫WEB應用件蚕。起主導作用的是你的代碼孙技,由你來決定何時使用類庫。類庫有:jQuery等
框架 - 框架是一種特殊的排作、已經(jīng)實現(xiàn)了的WEB應用牵啦,你只需要對它填充具體的業(yè)務邏輯。這里框架是起主導作用的妄痪,由它來根據(jù)具體的應用邏輯來調(diào)用你的代碼哈雏。目前比較流行的有angular,vue衫生,React裳瘪,
2.知識剖析
angular的核心思想
Angular是創(chuàng)建在這樣的信念上的:即聲明式編程應該用于構建用戶界面以及編寫軟件構建,而命令式編程非常適合來表示業(yè)務邏輯罪针。[3]框架采用并擴展了傳統(tǒng)HTML彭羹,通過雙向的數(shù)據(jù)綁定來適應動態(tài)內(nèi)容,雙向的數(shù)據(jù)綁定允許模型和視圖之間的自動同步泪酱。因此派殷,Angular使得對DOM的操作不再重要并提升了可測試性。
angular的亮點和過人之處墓阀!
1.代碼組織結構清晰
AngularJS模塊劃分明確毡惜,不同的代碼有其明確的存放處,可讀性強斯撮,便于維護和擴展(后面會有代碼組織結構圖)经伙。
3.常見問題
怎么體現(xiàn)在代碼?
angular的核心思想
Angular是創(chuàng)建在這樣的信念上的:即聲明式編程應該用于構建用戶界面以及編寫軟件構建勿锅,而命令式編程非常適合來表示業(yè)務邏輯帕膜。[3]框架采用并擴展了傳統(tǒng)HTML,通過雙向的數(shù)據(jù)綁定來適應動態(tài)內(nèi)容粱甫,雙向的數(shù)據(jù)綁定允許模型和視圖之間的自動同步泳叠。因此,Angular使得對DOM的操作不再重要并提升了可測試性茶宵。
angular的亮點和過人之處危纫!
1.代碼組織結構清晰
AngularJS模塊劃分明確,不同的代碼有其明確的存放處乌庶,可讀性強种蝶,便于維護和擴展(后面會有代碼組織結構圖)。
2.功能模塊易測試
AngularJS的代碼方便測試瞒大。雖然代碼易測試不能成為一個框架閃光的決定性因素螃征,但是反向思考,如果寫出來的代碼可測試性差將會使工作效率事倍功半透敌。
3.常見問題
怎么體現(xiàn)在代碼盯滚?
雙向綁定
雙向綁定的出現(xiàn)踢械,無可爭議的大大簡化了你的代碼量,與其說是技術的革新魄藕,不如說是一場思想上的顛覆與突破内列。回想jQuery還需要通過在DOM中找到需要的元素并在其上添加事件監(jiān)聽背率,通過觸發(fā)事件(如點擊等)才能解析獲取DOM元素中的值话瞧。而在AngularJS中只需要將DOM中的元素與js的某個屬性綁定,js屬性值變化會同步到DOM元素上寝姿,同樣的交排,DOM元素值得變化也會映射到js的屬性上《夸張點說埃篓,一個是刀耕火種,一個是蒸汽驅動翻翩。
問題分享:
1ng-bind和{{}}的區(qū)別都许?
回答:
{{text}}
一樣的效果
但使用花括號語法時稻薇,在AngularJS使用數(shù)據(jù)替換模板中的花括號時嫂冻,第一個加載的頁面,通常是應用中的index.html塞椎,其未被渲染的模板可能會被用戶看到桨仿。
對于index.html頁面中的數(shù)據(jù)綁定操作,建議采用ng-bind案狠。那么在數(shù)據(jù)加載完成之前用戶就不會看到任何內(nèi)容服傍。
作者:額爾齊斯冷
鏈接:http://www.reibang.com/p/56dcc0989482
來源:簡書
著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權骂铁,非商業(yè)轉載請注明出處吹零。
2 雙向綁定數(shù)據(jù)機制潛在的缺點?
常見的誤解就是認為:ng是定時輪詢?nèi)z查mode是否變更拉庵,其實灿椅,ng只有在指定事件觸發(fā)后,才進入$digestcycle钞支。
3nagularjs的優(yōu)缺點茫蛹?
優(yōu)點:數(shù)據(jù)雙向綁定是項目結構更加清晰,view ,controller,mode烁挟。等的細化便于多人協(xié)作開發(fā)婴洼。
缺點:對于新手(特別是對于MVC或者JS不熟的教難上手),嚴格的angularJS寫法要求DOM操作都封裝在directive,在實際應用如果某模塊有比較頻繁的復雜的dom操作撼嗓,難以實現(xiàn)柬采。