首頁  >  文章  >  web前端  >  angularjs的優點和缺點分別是什麼? angularjs的優缺點介紹

angularjs的優點和缺點分別是什麼? angularjs的優缺點介紹

寻∝梦
寻∝梦原創
2018-09-06 11:22:534033瀏覽

本篇文章主要的向大家介紹了有關於angularjs的歷史,還有angularjs的優點和angularjs的缺點的介紹,現在就讓我們一起來看這篇文章吧

首先我們先了解angularjs的歷史背景:

在Web開發領域,我們一般使用HTML作為前端頁面元素的宣告式語言,並使用CSS技術作為展示樣式的描述語言,JavaScript作為業務處理互動的命令式語言。當我們建構非常複雜的Web應用時,純粹而有限的HTML就顯得非常不足,Javascript本身也會隨著專案程式碼量的膨脹而難以維護和管理,研發工期和成本也會隨之難以控制。這時候,我們一般會使用一些類別庫(例如jQuery、Dojo等)或框架(例如Backbone、Ember、ExtJS等)來提升開發效率,進而降低專案的工期和成本,也方便後續的維護與管理。

而AngularJS不僅是一個理念先進(逼格高)的前端開發框架,更是一種端對端(End to End)的解決方案。 AngularJS遵從架構設計中的MVC模式,提倡展現、資料和邏輯處理元件的鬆散耦合(類似Flex和WPF)。 AngularJS透過指令技術對傳統HTML實現了自然擴展,透過編譯技術實現了資料模型與展現視圖的雙向自動同步,從而消除了前端開發中繁瑣複雜的DOM操作(想想看那些一片片的selector)。最後透過模組化設計解決了JS程式碼管理維護和按需載入的問題,解放了廣大前端程式設計師(以及後端程式設計師)同胞完成前端開發任務的生產力。而且這種解耦本身,也對前端的自動化測試技術提供了良好的支援。 (想知道更多推薦到PHP中文網的angularjs參考手冊欄學習)

#再來介紹angularjs的優點:

##1.模板功能強大豐富,並且是聲明式的,自帶了豐富的Angular指令;

2.是一個比較完善的前端MVVM框架,包含模板,數據雙向綁定,路由,模組化,服務,過濾器,依賴注入等所有功能;

3.自定義Directive,比jQuery插件還靈活,但是需要深入了解Directive的一些特性,簡單的封裝容易,複雜一點官方沒有提供詳細的介紹文檔,我們可以透過閱讀原始碼來找到某些我們需要的東西,如:在directive使用$parse;

4.ng模組化比較大膽的引入了Java的一些東西(依賴注入),能夠很容易的寫出可重複使用的程式碼,對於敏捷開發的團隊來說非常有幫助,我們的專案從上線到目前,UI變化很大,在摸索中迭代產品,但是js的程式碼基本上很少改動。

5.補充:Angular支援單元測試和e2e-testing。

註:最好的一點就是angularjs的雙向綁定以及他的模板層使用。

最後來介紹下angularjs的缺點:

1.驗證功能錯誤訊息顯示比較薄弱,需要寫很多範本標籤;

2. ngView只能有一個,不能嵌套多個視圖,雖然有angular-ui/ui-router 解決,但ui-router 對於URL的控制不是很靈活,必須是嵌套式的;

##3 .對於特別複雜的應用場景,貌似性能有點問題,特別是在Windows下使用chrome瀏覽器,不知道是內存洩漏了還是什麼其他問題,沒有找到好的解決方案,奇怪的是在IE10下反而很快,對此還在觀察中;

4.這次從1.0.X升級到1.2.X,貌似有比較大的調整,沒有完美兼容低版本,升級之後可能會導致一個兼容性的BUG,具體詳細資訊參考官方文件AngularJS,對應的中文版本:Angular 1.0到1.2 遷移指南,現在angularjs4都出來了,但是使用angularjs2的比較多;

5.ng提倡在控制器裡面不要有操作DOM的程式碼,對於一些jQuery 插件的使用,如果想不破壞程式碼的整潔性,需要寫一些directive去封裝插件,但是現在有很多插件的版本已經支援Angular了,最好能夠和cordova插件結合進行混合式開發;

6.Angular 太笨重了。

註:最不爽的一點是AngularJS的路由機制,很容易出問題。

以上就是這篇關於angularjs優缺點文章的全部內容了(想學更多關於angularjs的知識,就到PHP中文網

AngularJS學習手冊欄目

學習),有問題的可以在下方留言提問

以上是angularjs的優點和缺點分別是什麼? angularjs的優缺點介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn