看了AngularJS的文檔,網路上看了一些人說這個多強大,多少優點。 我沒感覺到他能做啥很麻煩的事情,有一些小改進,但不明顯。 是我學習不仔細,沒發現麼?
AngularJS非常合适 API fisrt的开发思路,如果有现成的RESTful介面的話那更好了,直接都不用後端程式碼了
AngularJS
API fisrt
RESTful
AngularJS也合適單頁邏輯比較複雜的情況,動態載入、刪除內容非常簡單
建議加點路線
jQuery => Ember => Backbone => Knockoutjs => Angular
對於了解前端開發、懂得SPA開發的基本流程、常見問題、痛點、性能調優等的開發來說,angularJS是利器,對缺乏上述經驗的人來說,沒有老司機帶直接學angular很難理解angular複雜的設計背後的邏輯和目的,還容易忽略DOM基礎
如果原來的jQuery基礎, 改用angular 後程式碼會少2/3 還要多.
學習路線有兩種. 如果有jQuery 基礎的, 首先要把jQuery 忘光光, 那麼學習路線應該為 jQuery -> 忘記jQuery -> backbone(model 和 view, 路由router可以不用學) - angularjs
沒有任何基礎的, 建議直接angular, 而且你發現學的比jQuery 有基礎的還要快,
最不好就是angular的程式碼裡混了很多jQuery的程式碼. 完了 沒救了
http://blog.csdn.net/postd_cn/article/details/38405833http://damoqiongqiu.iteye.com/blog/1926475
所有的框架都是在實際工程環境中抽離出來的,然後慢慢完善。所以如果開發經驗不夠的話,其實你很難比較到底使用 Backbone,Ember, React 還是 Angular。
但我覺得如果你對什麼框架有興趣那就用嘛,慢慢用多了,你就知道媽蛋這裡要是自己用jQuery 那得寫到什麼時候,有時候也會覺得還是自己寫一個框架來得好,當然如果是寫一般的應用你也會覺得用毛這些框架啊,還是手寫來得好。
jquery只是控制dom。 。 。 angluarjs 最牛得地方就是資料雙向綁定。對於一些互動非常複雜的頁面很合適。
雖然另外有同學提到了, 這種東西的好處只有在你專案經驗累積到一定程度才能體現出來. 不過出於廣告的目的, 我還是簡單說說.
就像如果題主剛接觸程式設計, 函數都還不熟, 看到OOP, 可能就會問, 這有什麼好處? 即使後來掌握了相關的語法糖, 依然對它們的實用價值抱有疑問, 這個是非常能理解的.
回到AngularJS 這一類MVC/MVVM 框架, 它們存在的價值是什麼? 答案也很簡單, 其實和OOP 這類一樣, 是為了減少代碼耦合, 降低邏輯難度, 提高可靠性. 那為什麼較為直接的方法就不行?
先說較為"直接" 的方法, 也就是event driven. 舉一個簡單的例子, 界面上有一個元素的狀態可能因為用戶在幾個不同的地方進行的交互而改變, 而這些交互發生的順序,頻率, 等等都可能和該元素的狀態有關係, 在任何一個可能觸發該元素狀態改變的地方, 都需要一套判斷機制, 來確定該元素的最新狀態.
這樣寫可以嗎? 當然可以, 但是可靠麼? 這就是考驗你邏輯嚴密與否的時候了. 稍微一點邏輯出現問題, 甚至稍微疏忽改了這兒忘了那兒, 等等, 都可能引發問題.
MVC 呢則是data driven, 在UI 和交互之間, 增加了一層數據, UI 只關心這些數據中一個或多個的狀態, 不再關心是否發生了各種各樣的事件, 而交互則只關心更新這些個數據, 而不再關心UI 會有什麼變化. 這樣一來, 原本繁雜的邏輯得到了極大的簡化, 一方面降低了開發者的思維難度, 另一方面也從客觀上降低了問題產生的機率.
接下來是廣告時間~
因為學習AngularJS/Ember 這些都是有成本的, 只是掌握了API 其實是不夠的, 不了解裡面的實現細節, 寫的時候也就沒底氣, 因為不知道每一個操作的代價是什麼, 於是果斷造了輪子. 並且用到了項目開發上. 不過因為是新輪子, 也發現了設計上的一些問題, 未來會重寫, 但是歡迎點star 啊點點star 啊.
https://github.com/vilic/drop
angularjs 是框架 jquery 是類別庫
本身是兩個level上的東東
用angularjs本質上是以它的思路組織程式碼開發應用,框架幫你做了很多事情,包括雙向資料綁定,module注入等。但是靈活性相應的降低,不太適合規模龐大的前端系統。
如何定義有幫助呢?讓程式更有邏輯,更好維護,減少程式碼? 開發都是要結合場景的。 我覺得Augular最適合的還是應用程式層級的開發,最常見是企業內部的後台工具,這樣的情況下一定是有幫助的。 但是對於一些快速迭代的活動頁面(只在一段時間內使用這種),Angular確實是沒有幫助的。
從大的方面總結下:大大提高了我們程式碼的「可復用性」、「可維護性」、「可測試性」
angular入門很快,但是裡面複雜的東西還蠻多的
高並發的目標主要是後端Web服務。 以前所有都是後端模板的時候,因為一個頁面牽涉到大量的後端DB讀取,容易讓頁面的渲染變慢。 現在頁面除了主業務實體資料以外,其它大多依賴前端JS非同步載入。甚至有人做絕對的靜態頁面,後端資料全部依靠異步加載不過這兩種方式不是絕對的,比如頁面第一屏看不到的東西可以異步加載,現在的異步加載請求就想CSS和JS一樣也開始走非同步請求合併路線。所以在實際工程中一是要分析具體情況,二是掌握好一個度。
AngularJS
非常合适API fisrt
的开发思路,如果有现成的RESTful
介面的話那更好了,直接都不用後端程式碼了AngularJS
也合適單頁邏輯比較複雜的情況,動態載入、刪除內容非常簡單建議加點路線
jQuery => Ember => Backbone => Knockoutjs => Angular
對於了解前端開發、懂得SPA開發的基本流程、常見問題、痛點、性能調優等的開發來說,angularJS是利器,對缺乏上述經驗的人來說,沒有老司機帶直接學angular很難理解angular複雜的設計背後的邏輯和目的,還容易忽略DOM基礎
如果原來的jQuery基礎, 改用angular 後程式碼會少2/3 還要多.
學習路線有兩種.
如果有jQuery 基礎的, 首先要把jQuery 忘光光, 那麼學習路線應該為 jQuery -> 忘記jQuery -> backbone(model 和 view, 路由router可以不用學) - angularjs
沒有任何基礎的, 建議直接angular, 而且你發現學的比jQuery 有基礎的還要快,
最不好就是angular的程式碼裡混了很多jQuery的程式碼. 完了 沒救了
http://blog.csdn.net/postd_cn/article/details/38405833
http://damoqiongqiu.iteye.com/blog/1926475
所有的框架都是在實際工程環境中抽離出來的,然後慢慢完善。所以如果開發經驗不夠的話,其實你很難比較到底使用 Backbone,Ember, React 還是 Angular。
但我覺得如果你對什麼框架有興趣那就用嘛,慢慢用多了,你就知道媽蛋這裡要是自己用jQuery 那得寫到什麼時候,有時候也會覺得還是自己寫一個框架來得好,當然如果是寫一般的應用你也會覺得用毛這些框架啊,還是手寫來得好。
jquery只是控制dom。 。 。
angluarjs 最牛得地方就是資料雙向綁定。對於一些互動非常複雜的頁面很合適。
雖然另外有同學提到了, 這種東西的好處只有在你專案經驗累積到一定程度才能體現出來. 不過出於廣告的目的, 我還是簡單說說.
就像如果題主剛接觸程式設計, 函數都還不熟, 看到OOP, 可能就會問, 這有什麼好處? 即使後來掌握了相關的語法糖, 依然對它們的實用價值抱有疑問, 這個是非常能理解的.
回到AngularJS 這一類MVC/MVVM 框架, 它們存在的價值是什麼? 答案也很簡單, 其實和OOP 這類一樣, 是為了減少代碼耦合, 降低邏輯難度, 提高可靠性. 那為什麼較為直接的方法就不行?
先說較為"直接" 的方法, 也就是event driven. 舉一個簡單的例子, 界面上有一個元素的狀態可能因為用戶在幾個不同的地方進行的交互而改變, 而這些交互發生的順序,頻率, 等等都可能和該元素的狀態有關係, 在任何一個可能觸發該元素狀態改變的地方, 都需要一套判斷機制, 來確定該元素的最新狀態.
這樣寫可以嗎? 當然可以, 但是可靠麼? 這就是考驗你邏輯嚴密與否的時候了. 稍微一點邏輯出現問題, 甚至稍微疏忽改了這兒忘了那兒, 等等, 都可能引發問題.
MVC 呢則是data driven, 在UI 和交互之間, 增加了一層數據, UI 只關心這些數據中一個或多個的狀態, 不再關心是否發生了各種各樣的事件, 而交互則只關心更新這些個數據, 而不再關心UI 會有什麼變化. 這樣一來, 原本繁雜的邏輯得到了極大的簡化, 一方面降低了開發者的思維難度, 另一方面也從客觀上降低了問題產生的機率.
接下來是廣告時間~
因為學習AngularJS/Ember 這些都是有成本的, 只是掌握了API 其實是不夠的, 不了解裡面的實現細節, 寫的時候也就沒底氣, 因為不知道每一個操作的代價是什麼, 於是果斷造了輪子. 並且用到了項目開發上. 不過因為是新輪子, 也發現了設計上的一些問題, 未來會重寫, 但是歡迎點star 啊點點star 啊.
https://github.com/vilic/drop
angularjs 是框架
jquery 是類別庫
本身是兩個level上的東東
用angularjs本質上是以它的思路組織程式碼開發應用,框架幫你做了很多事情,包括雙向資料綁定,module注入等。但是靈活性相應的降低,不太適合規模龐大的前端系統。
如何定義有幫助呢?讓程式更有邏輯,更好維護,減少程式碼?
開發都是要結合場景的。
我覺得Augular最適合的還是應用程式層級的開發,最常見是企業內部的後台工具,這樣的情況下一定是有幫助的。
但是對於一些快速迭代的活動頁面(只在一段時間內使用這種),Angular確實是沒有幫助的。
從大的方面總結下:大大提高了我們程式碼的「可復用性」、「可維護性」、「可測試性」
angular入門很快,但是裡面複雜的東西還蠻多的
高並發的目標主要是後端Web服務。
以前所有都是後端模板的時候,因為一個頁面牽涉到大量的後端DB讀取,容易讓頁面的渲染變慢。
現在頁面除了主業務實體資料以外,其它大多依賴前端JS非同步載入。甚至有人做絕對的靜態頁面,後端資料全部依靠異步加載
不過這兩種方式不是絕對的,比如頁面第一屏看不到的東西可以異步加載,現在的異步加載請求就想CSS和JS一樣也開始走非同步請求合併路線。所以在實際工程中一是要分析具體情況,二是掌握好一個度。