什麼時候 AngularJS 會超越 jQuery

oschina發表於2015-03-02

web 新手常問的一個問題是“我應該使用哪個框架?”但這個問題卻沒有‘正確’的答案,通常主要討論的是 AngularJS 和 jQuery的區別。但它們間的比較在某些方面就像是在比較蘋果和橘子的區別,對於一個web應用,沒有明確的原因非要使用一個主要的 web 框架實現。下面一些使用 AngularJS 要優先於 jQuery 的場景。

當 DOM 操作是次要時

jQuery 主要關注於 DOM 掃描和操作。一個常例是通過使用者操作進行 DOM 元素的新增和修改,例如將AJAX返回的結果通過預先處理的HTML新增到已存在的DIV中。但使用 AngularJS,開發的焦點在於資料展示。通過雙向資料繫結,資料的更新會自動完成而不需要刪除和重建 DOM。雖然 DOM 操作是不可能完全避免的,但較只使用 jQuery,使用 AngularJS 你只需處理較少的 DOM 操作。

當注重效率時

雖然 AngularJS 學起來有點難,但它對於開發者來說具有較高的效率。AngularJS 的很多特性注重於提高開發者的產出。例如為支援單元測試的內建擴充套件支援。注重於測試的特性通過簡化單元測試,從而使開發者注重於生產更健壯可靠的程式碼。另外,通過將DOM操作與程式邏輯解耦,開發者能夠專注於“為什麼”而不是“如何做”。通常,這會導致短小但穩定和易於除錯的程式碼。

在採用描述性介面的時候

使用jQuery常常遇到的問題是它採用的是指令式程式設計,說的再透徹點,它告訴計算機如何才能達到目標,這樣的處理過程產生的結果就是你想要的結果。不過,描述性程式設計則相反,它告訴計算機你想要的結果,讓計算機自己確定該如何實現。JavaScript 總的來說是採用命令式方法進行設計的,而HTML-以及AngularJS給HTML所增加的指令-都是專門為描述性程式設計而設計的。如果你使用AngularJS進行程式設計,那麼你最終採用的描述性程式設計,它更符合HTML原來的設計意圖-即告訴計算機你想得到的顯示結果,然後由計算機處理具體的細節。如果採用了這種程式設計方式,那麼完成具體任務所需程式碼的行數就會大大的減少了,這樣的程式碼可讀性更高,維護起來更容易。

結論

如上所述,AngularJS 和 jQuery 在許多方面都不具有可比性。這兩個框架設計的目標不同,解決問題就不同。話雖這麼說,開發人員開發某些資料顯示和維護方面的應用而不是資料分析方面的應用的產能得到了大幅提升,AngularJS 在這些領域都比 jQuery 好很多。最終要選擇哪個框架由你所在單位的能力和所採用工具的核心元件相關的許多因素決定的,不過,無論如何,AngularJS 都是提高網際網路應用開發人員產能,減少維護費用的不二的選擇。

相關文章