如果說 AngularJS 比 jQuery 強大,強大在哪裡?
认证高级PHP讲师
以上回到顯然不合理,可能是沒有用過ng,ng比jq強大的地方主要是:
jquery修改元素是透過手動操作dom,ng修改了資料就自動同步到dom 例如有一個列表要展現:
<ul ng-repeat="i in list"><li>{{i}}</li></ul>
ng代碼:$scope.list = [1,2,3], 修改list $scope.list[2] = 4 dom的ul第3個li就自動變成4了
$scope.list = [1,2,3],
$scope.list[2] = 4
而jq,程式碼大概需要:
list[2] = 4 $('ul').html('') $.each(list, function(i,v){ $('ul').append('....') })
說穿了就是ng執行要把資料修改了html就自動變了,jq的話修改資料了還要自己修改html 而且,ng中,html(例如表單的input的value)變了後,資料自動變了,而jq還需要var data = $('input').val();
var data = $('input').val();
這叫資料的雙向綁定。
當然ng只適合單頁應用,不利於seo,這是另外的事
這是兩個完全不同理念的東西,沒有可比性。
首先這兩者可比較性不大,jquery的重點在於提供了多樣的元素選擇以及選出元素的各類方法提供,幫助開發者快速進行頁面開發。但從本質上來說,並不是程序框架性質的框架。而且,選擇器角度也可以很多直接用原生去實現,而angular更在於其數據和頁面的自動綁定所能帶來的開發便利,更符合頁面相對交互不多,更多中心在於數據呈現的場景下使用。 所以lz要比較其實應該比較的是backbone和angular這兩個。
我之前花很長時間寫的一個 Markdown 編輯器中的大部分程式碼,其實只是實作了 AngularJS 的一點皮毛;而 jQuery 的許多功能我都很快地自己寫了實作。
讀過 jQuery 核心的程式碼,感覺 jQuery 提供的是一種書寫風格,而 AngularJS 才是真正強大的難以自己實現的,JS 所缺少的一角,打開了一種全新的思路。
當然,jQuery 和 AngularJS 專注的地方本來就不一樣,在各自領域都有各自的應用。 只是論自己實現的難度,AngularJS 大於 jQuery。
jQuery 專注於程式碼,AngularJS 專注於架構和功能。
Reference: http://damoqiongqiu.iteye.com/blog/1926475 https://angularjs.org/http://jquery.com/
從功能上來說這兩個東西根本沒有可比性。 如果從整個程式碼的寫法來看,我感覺jquery寫的更優美。但其實這個沒有絕對,畢竟每個人都不同。
真的是沒有可比性,jQuery只是一個操作DOM的類別函式庫而已,而AngularJS是是MVC(或MVVM)框架。 AngularJS實作了讓View和資料完全分離,提供的資料雙向綁定功能只要修改資料就時時同步了View,基本上不用手動操作DOM。 當然AngularJS除了資料雙向綁定功能外,還提供了 路由、服務、過濾器、模板、指令、模組管理、依賴注入、單元測試等功能。
不知道這樣說了以後你是否有直覺的了解2者之間的區別了。
這個問題好比在問錘子比螺絲起子強嗎,強大在哪裡? 不同的理念,誰也代替不了誰,真的談不上誰比較強大,看需求選擇使用哪一個,都是很好用的工具。
有人拿jqueryui跟angularjs比較,覺得好傻
Angular是整體開發的框架模式,不管是什麼樣的框架在具體實現時需要有利的工具輔助實現,而此時jquery發揮巨大的工具作用,是一把非常好用的瑞士軍刀,哈哈,所以也叫鋒利的jquery,Angular是框架和jquery負責不同層面的工作,Angular的數據DOM的雙向綁定比較弱,當然,也有很多人認為這很強大,因為這特性在弱結構弱交互頁面中確實很便利,在複雜的結構強交互的頁面中,Angular的這個綁定特性的優勢也立刻成了沒什麼用的雞肋。這兩者沒有任何衝突,以我的工作來比方,把Angular理解為房屋的建築結構有框架結構框剪結構有磚混結構,把jquery理解為房屋的裝修樣式,有歐式,現代,東南亞風格,現在明白了吧,兩者是獨立的不存在衝突更不存在有什麼選擇的比較。
一個是MVC框架,一個是函式庫。一個外在的體現了設計思想,一個簡化並強化了原生的js。我們也可以用jq實作自己的框架。所以沒有可比性。
AngularJS很成功地在團隊成員JS能力不足的情況下,讓Java開發人員把這部分較好地寫起來了。
好的前端程式設計師,會盡可能的把前後端資料互動操作進行分離,前端程式設計師只需要每個頁面提供一鍵傻瓜式js 方法,後端只需按照資料模版返回固定格式資料後呼叫即可( )
js 能力不足 ,以及對 dom 操作不熟練的程式設計師 ,則需要AngularJS 這種效率低下 ,貌似易用的框架
所以說白了,AngularJS 是給js 能力不足,嚴重依賴框架的java程式設計師用的蹩腳方案AngularJS 是一個重量級的前端框架,也就是說很吃性能,適合對頁面性能交互要求不高的地方;
總結:不懂前端的程式設計師,總是想把後端思想帶進 前端, 前後不分,AngularJS 是提供給前端技術思想不好的程式設計師的妥協方案
比較就比較,有什麼愚蠢不愚蠢的,太多維度可以做比較了,多少程式設計師從熟悉jQuery到新學習angular,這個過程必然經歷兩者的比較。本身就是很多趨勢,越來越多人用angular取代了jquery,或許就能說明誰強大,雖然我比較喜歡jQuery。
以上回到顯然不合理,可能是沒有用過ng,ng比jq強大的地方主要是:
jquery修改元素是透過手動操作dom,ng修改了資料就自動同步到dom
例如有一個列表要展現:
ng代碼:
$scope.list = [1,2,3],
修改list$scope.list[2] = 4
dom的ul第3個li就自動變成4了
而jq,程式碼大概需要:
說穿了就是ng執行要把資料修改了html就自動變了,jq的話修改資料了還要自己修改html
而且,ng中,html(例如表單的input的value)變了後,資料自動變了,而jq還需要
var data = $('input').val();
這叫資料的雙向綁定。
當然ng只適合單頁應用,不利於seo,這是另外的事
這是兩個完全不同理念的東西,沒有可比性。
首先這兩者可比較性不大,jquery的重點在於提供了多樣的元素選擇以及選出元素的各類方法提供,幫助開發者快速進行頁面開發。但從本質上來說,並不是程序框架性質的框架。而且,選擇器角度也可以很多直接用原生去實現,而angular更在於其數據和頁面的自動綁定所能帶來的開發便利,更符合頁面相對交互不多,更多中心在於數據呈現的場景下使用。
所以lz要比較其實應該比較的是backbone和angular這兩個。
我之前花很長時間寫的一個 Markdown 編輯器中的大部分程式碼,其實只是實作了 AngularJS 的一點皮毛;而 jQuery 的許多功能我都很快地自己寫了實作。
讀過 jQuery 核心的程式碼,感覺 jQuery 提供的是一種書寫風格,而 AngularJS 才是真正強大的難以自己實現的,JS 所缺少的一角,打開了一種全新的思路。
當然,jQuery 和 AngularJS 專注的地方本來就不一樣,在各自領域都有各自的應用。
只是論自己實現的難度,AngularJS 大於 jQuery。
jQuery 專注於程式碼,AngularJS 專注於架構和功能。
Reference: http://damoqiongqiu.iteye.com/blog/1926475 https://angularjs.org/
http://jquery.com/
從功能上來說這兩個東西根本沒有可比性。
如果從整個程式碼的寫法來看,我感覺jquery寫的更優美。但其實這個沒有絕對,畢竟每個人都不同。
真的是沒有可比性,jQuery只是一個操作DOM的類別函式庫而已,而AngularJS是是MVC(或MVVM)框架。
AngularJS實作了讓View和資料完全分離,提供的資料雙向綁定功能只要修改資料就時時同步了View,基本上不用手動操作DOM。
當然AngularJS除了資料雙向綁定功能外,還提供了 路由、服務、過濾器、模板、指令、模組管理、依賴注入、單元測試等功能。
不知道這樣說了以後你是否有直覺的了解2者之間的區別了。
這個問題好比在問錘子比螺絲起子強嗎,強大在哪裡?
不同的理念,誰也代替不了誰,真的談不上誰比較強大,看需求選擇使用哪一個,都是很好用的工具。
有人拿jqueryui跟angularjs比較,覺得好傻
Angular是整體開發的框架模式,不管是什麼樣的框架在具體實現時需要有利的工具輔助實現,而此時jquery發揮巨大的工具作用,是一把非常好用的瑞士軍刀,哈哈,所以也叫鋒利的jquery,Angular是框架和jquery負責不同層面的工作,Angular的數據DOM的雙向綁定比較弱,當然,也有很多人認為這很強大,因為這特性在弱結構弱交互頁面中確實很便利,在複雜的結構強交互的頁面中,Angular的這個綁定特性的優勢也立刻成了沒什麼用的雞肋。這兩者沒有任何衝突,以我的工作來比方,把Angular理解為房屋的建築結構有框架結構框剪結構有磚混結構,把jquery理解為房屋的裝修樣式,有歐式,現代,東南亞風格,現在明白了吧,兩者是獨立的不存在衝突更不存在有什麼選擇的比較。
一個是MVC框架,一個是函式庫。一個外在的體現了設計思想,一個簡化並強化了原生的js。我們也可以用jq實作自己的框架。所以沒有可比性。
AngularJS很成功地在團隊成員JS能力不足的情況下,
讓Java開發人員把這部分較好地寫起來了。
好的前端程式設計師,會盡可能的把前後端資料互動操作進行分離,前端程式設計師只需要每個頁面提供一鍵傻瓜式js 方法,後端只需按照資料模版返回固定格式資料後呼叫即可( )
js 能力不足 ,以及對 dom 操作不熟練的程式設計師 ,則需要AngularJS 這種效率低下 ,貌似易用的框架
所以說白了,AngularJS 是給js 能力不足,嚴重依賴框架的java程式設計師用的蹩腳方案
AngularJS 是一個重量級的前端框架,也就是說很吃性能,適合對頁面性能交互要求不高的地方;
總結:不懂前端的程式設計師,總是想把後端思想帶進 前端, 前後不分,AngularJS 是提供給前端技術思想不好的程式設計師的妥協方案
比較就比較,有什麼愚蠢不愚蠢的,太多維度可以做比較了,多少程式設計師從熟悉jQuery到新學習angular,這個過程必然經歷兩者的比較。本身就是很多趨勢,越來越多人用angular取代了jquery,或許就能說明誰強大,雖然我比較喜歡jQuery。