jQuery 和 YUI (Yahoo User Interface) 各自的優缺點有哪些?具體的使用場景是怎樣的?


其實jQuery和YUI的側重點是不一樣的。

jQuery專註於DOM的操作,他通過繼承的方式給傳入的對象增加了新的方法,從而使我們可以通過鏈式調用來操作對象,這種方法上手簡單,我看到很多設計師都可以玩上一玩。其實,就像jQuery說的,write less do more!

YUI是一個大型開發工具,他提供了一套javascript以及css的類庫來為交互開發提供支持,我們可以看到YUI除了主打的js框架外,還有配套的壓縮工具(YUI Compressor),文檔生成工具(YUI Doc),單元測試工具(YUI Test)甚至開放了PHPLOADER(YUI PHP Loader ),再較大團隊開發中,這些東西是非常重要的。

從編程語法上來說,誠如前面所說,jQuery專註於DOM操作,因此必不可免的弱化了OO,相比之下YUI則更加規範。

再如,jQuery中面向DOM的設計,決定了他可以通過$.extend()或者$(elem).extend()向對象或者節點增加新的方法,而YUI在這方面就異常的笨拙。

當然,這些並不能說明誰比誰好,YUI的顆粒化決定了他的維護成本低,可以稱為刀,而jQuery鋒利的刀刃決定了它使用方便,遊刃有餘,可以稱為劍。

所以,刀劍相爭?誰主沉浮?嗯,只有看你是令狐沖還是李尋歡了:)


個人喜歡YUI多一點,其實兩者各有所長所短。適合於不同的情況下來使用。

jQuery (不包括jQuery UI之類的增強及插件) 更多的好象一個基本的工具類,涵蓋了DOM操作,Event綁定,基本動畫,Ajax封閉,以及大量的工具方式,便利的語法結構。簡單的插件機制。

YUI2的時候,似乎也做了同樣的事,不過Yahoo的工程師更喜歡「重」的方式,規範的類結構,名字空間,Event, Dom的封閉,然後在這個基礎上也進一步集成了許多UI的控制項。

到了YUI3的時候,更清楚的底層結構,Sandboxing,讓你可以容易的整合其他的Javascript Library。這個時候,YUI倒更象是一個框架而不是函數庫(library)。

淘寶的Kissy框架 https://github.com/kissyteam/kissy, 或者WebQQ用到的Jet框架 http://code.google.com/p/j-et/ 都或多或少的受YUI3框架結構的啟發,弱化,而建立一個供自己使用的更精巧的框架。(有時候自主框架的好處是快速的Fix以及靈活的面對你的項目需求,版本控制)。

所以我的最終的建議是,如果是快速的原型開發,或者小型, UI複雜度底的時候,選擇jQuery。如果是需要有自己長期維護的UI較多的多頁面的項目,選擇 YUI似乎是更好的決定。


我覺得有一個非常形象的比喻:jQuery就像一把萬能鑰匙,大部分鎖都可以被你輕鬆打開,但有很多較為複雜的鎖是無能為力的;而YUI則是一個開鎖人工具箱,有很多的工具,只要你懂得配合使用就可以打開所有的鎖。


YUI的源碼組織比較通俗易懂,如果想看源碼,可以先從YUI的開始看。


兩個框架的共同點:跨平台、跨瀏覽器

對於我而言,YUI更像是類似MFC這樣的重型框架,裡面什麼都有,API非常的標準化,適合構建各種管理系統的UI,非常方便,但速度相對比較慢。 jQuery就像是一個輕騎兵,輕量級,可擴展,經典的鏈式調用讓你的程序邏輯非常的簡介明了。

建議:

(1) 企業內部管理系統可以考慮使用YUI,可以很方便地創建各種類似桌面應用體驗的服務;

(2) 對速度和流量要求比較高的網站,建議使用jQuery。


【美圖秀秀+各類美圖APP】與Photoshop的區別,可惜YUI停止更新了。一個小而美,一個大而全


作為兩個框架的忠實用戶,不敢妄加評論。呈上 YUI3 架構師和 jQuery之父在Quora上的對話,定能讓你暗涌澎湃,倍感精彩至極。:)

http://www.quora.com/How-could-YUI3-improve-its-image-compared-to-jQuery-MooTools-etc/

翻譯:http://news.cnblogs.com/n/80363/


jQuery的學習資源和社區強大很多。


jQuery讓你覺得寫JS是件很爽的事,YUI尤其是YUI 2讓你覺得寫JS是一種折磨。就這麼簡單。


yui什麼都好,就是雅虎本身讓人很擔心。


jQuery比較適合初學者,容易上手。據我了解,有些人學習Js從學習jQuery開始的。


JQuery呀,成本低,資料多。


jquery是衝鋒槍,yui是坦克。


YUI更面向對象,jQuery更簡潔

從Java/C++過來的,比較注重重用 繼承 可擴展性等面向對象特性的,YUI當然更好

不過jQuery實在是簡潔,做網站太方便了


之前看到一牛人說的:JQ適合寫demo,YUI適合大型產品。

PS:俺不懂js


都很強大,不過jq社區和資源要多很多


個人也覺得YUI 3功能更豐富點。


不知道對初學者來說是福音還是災難。


推薦閱讀:

有一千本以上實體紙質編程書是什麼體驗?
NPM中將函數當作一個包發布的方式是否合理?
如何使用正則表達式得到一個 URL 中的主域名,不用正則還有什麼方法?

TAG:JavaScript | jQuery | YUI | 前端開發框架和庫 |