摘要:入門一前言目前來說相對于現在流行的高版本以及來說實屬是老套的前端框架了,當然這都不重要,沒有完美的框架,只有不斷優化的代碼。通過使用我們稱為指令的結構,讓瀏覽器能夠識別新的語法。使用作為輸入,而不是字符串,是區別于其它的框架的最大原因。
AngularJs 入門(一) 前言
AngularJs目前來說相對于現在流行的高版本ng2、ng4,以及Vue2.0、React來說實屬是老套的前端框架了,當然這都不重要,沒有完美的框架,只有不斷優化的代碼。其實只是符合公司水平要求才這么整的啊。。話不多說,開搞吧。
一、什么是AngularJs
1、AngularJS是為了克服HTML在構建應用上的不足而設計的。HTML是一門很好的為靜態文本展示設計的聲明式語言,但要構建WEB應用的話它就顯得乏力了。
通常,我們是通過以下技術來解決靜態網頁技術在構建動態應用上的不足:
1> 類庫 - 類庫是一些函數的集合,它能幫助你寫WEB應用。起主導作用的是你的代碼,由你來決定何時使用類庫。類庫有:jQuery等。
2> 框架 - 框架是一種特殊的、已經實現了的WEB應用,你只需要對它填充具體的業務邏輯。這里框架是起主導作用的,由它來根據具體的應用邏輯來調用你的代碼。框架有:knockout、sproutcore等。
AngularJS使用了不同的方法,它嘗試去補足HTML本身在構建應用方面的缺陷。AngularJS通過使用我們稱為指令(directives)的結構,讓瀏覽器能夠識別新的語法。例如:
使用雙大括號{{}}語法進行數據綁定;
使用DOM控制結構來實現迭代或者隱藏DOM片段;
支持表單和表單的驗證;
能將邏輯代碼關聯到相關的DOM元素上;
能將HTML分組成可重用的組件。
還有很多事情,這里大概提一下。到了模塊介紹和具體項目中會詳細講解。
二、特性
1>雙向的數據綁定。
它能夠幫助你避免書寫大量的初始代碼從而節約開發時間。一個典型的web應用可能包含了80%的代碼用來處理,查詢和監聽DOM。數據綁定是的代碼更少,你可以專注于你的應用。我們想象一下Model是你的應用中的簡單事實。你的Model是你用來讀取或者更新的部分。數據綁定指令提供了你的Model投射到view的方法。這些投射可以無縫的,毫不影響的應用到web應用中。傳統來說,當model變化了。
開發人員需要手動處理DOM元素并且將屬性反映到這些變化中。這個一個雙向的過程。一方面,model變化驅動了DOM中元素變化,另一方面,DOM元素的變化也會影響到Model。這個在用戶互動中更加復雜,因為開發人員需要處理和解析這些互動,然后融合到一個model中,并且更新View。這是一個手動的復雜過程,當一個應用非常龐大的時候,將會是一件非常費勁的事情。這里肯定有更好的解決方案!那就是AngularJS的雙向數據綁定,能夠同步DOM和Model等等。
2> 一個模板就是一個HTML文件。
但是HTML的內容擴展了,包含了很多幫助你映射model到view的內容。HTML模板將會被瀏覽器解析到DOM中。DOM然后成為AngularJS編譯器的輸入。AngularJS將會遍歷DOM模板來生成一些指導,即,directive(指令)。所有的指令都負責針對view來設置數據綁定。我們要理解AuguarJS并不把模板當做String來操作。輸入AngularJS的是DOM而非string。數據綁定是DOM變化,不是字符串的連接或者innerHTML變化。使用DOM作為輸入,而不是字符串,是AngularJS區別于其它的框架的最大原因。使用DOM允許你擴展指令詞匯并且可以創建你自己的指令,甚至開發可重用的組件。最大的好處是為設計師和開發者創建了一個緊密的工作流。設計師可以像往常一樣開發標簽,然后開發者拿過來添加上功能,通過數據綁定將會使得這個過程非常簡單。
3> 服務和依賴注入
AngularJS擁有內建的依賴注入(DI)子系統,可以幫助開發人員更容易的開發,理解和測試應用。DI允許你請求你的依賴,而不是自己找尋它們。比如,我們需要一個東西,DI負責找創建并且提供給我們。為了而得到核心的AngularJS服務,只需要添加一個簡單服務作為參數,AngularJS會偵測并且提供給你。
4>指令(Directives)
指令是我個人最喜歡的特性。你是不是也希望瀏覽器可以做點兒有意思的事情?那么AngularJS可以做到。指令可以用來創建自定義的標簽。它們可以用來裝飾元素或者操作DOM屬性。可以作為標簽、屬性、注釋和類名使用。然后,你可以使用這個自定義的directive來使用:使用一系列的組件來創建你自己的應用將會讓你更方便的添加,刪除和更新功能。
5>模塊化設計
模塊是提供一些特殊服務的功能塊,比如本地化模塊負責文字本地化,驗證模塊負責數據驗證。一般來說,服務在模塊內部,當我們需要某個服務的時候,是先把模塊實例化,然后再調用模塊的方法。但Angular模塊和我們通常理解的模塊不一樣,Angular模塊只保留服務的聲明,服務的實例化是由服務注入器完成的,實例化之后服務就留在了服務注入器中,和模塊沒有關系了,這就是為什么我們使用的服務全部來自注入器的原因。每調用一次angular.boostrap()方法會創建一個新的Angular應用和一個新的服務注入器,因此,每個應用都對應一個服務注入器,彼此互不沖突。
在angular中,模塊可以是對象、方法(如果是數組,數組的最后一個元素必須是方法,前面的元素都是方法按順序排列的參數名稱)。后面講的模塊屬性和方法,都屬于通過angular.module()定義的模塊對象。如果模塊是方法,是不需要經過angular.module()定義的,只需寫入依賴數組(就是說依賴數組的元素可以是方法),模塊在加載依賴關系的時候直接執行了。
注意:通過angular.module()方法定義的模塊是唯一的,如果重復定義就會覆蓋前面的定義。
高內聚低耦合法則
1)官方提供的模塊:ng、ngRoute、ngAnimate、ngTouch
2)用戶自定義的模塊:angular.module("模塊名",[ ])
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/92506.html
摘要:在跟著中文社區的入門教程一開始學習就發現了紕漏。。。啟動服務,運行命令,過程需要等待幾分鐘。中文社區此處使用命令,會報錯,錯誤提示翻看路徑確實沒有文件。所以改用命令即可解決錯誤成功啟動服務。 前言 眾所周知,AngularJS已成為前端的一大熱框架,AngularJS已然成為Web應用開發世界里最受歡迎的開源JavaScript框架。但雖然AngularJS 2也發布了蠻久的但相關的學...
摘要:特意對前端學習資源做一個匯總,方便自己學習查閱參考,和好友們共同進步。 特意對前端學習資源做一個匯總,方便自己學習查閱參考,和好友們共同進步。 本以為自己收藏的站點多,可以很快搞定,沒想到一入匯總深似海。還有很多不足&遺漏的地方,歡迎補充。有錯誤的地方,還請斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應和斧正,會及時更新,平時業務工作時也會不定期更...
摘要:下面圍繞的這樣的目的,即左右知乎網頁上屏幕截圖功能的實現前端掘金背景最近注意到知乎的屏幕截圖反饋功能,感覺非常不錯。正如你期望的,文中的闖關記之垃圾回收和內存管理前端掘金題圖來源,授權基于協議。 微信小程序實戰學習 起手式 DEMO 仿肯德基 - 前端 - 掘金小程序?大場景? 微信小程序本質上來說就是一個 HTML 5(移動網頁) 應用,用view、scoll-view代替了div標...
閱讀 1054·2021-11-15 18:11
閱讀 3177·2021-09-22 15:33
閱讀 3470·2021-09-01 11:42
閱讀 2666·2021-08-24 10:03
閱讀 3631·2021-07-29 13:50
閱讀 2934·2019-08-30 14:08
閱讀 1284·2019-08-28 17:56
閱讀 2266·2019-08-26 13:57