YUI 3.0 Preview Release 1

看來要轉換到 3.0,還是整個重寫比較快。

昨天在 YUI Blog 上看到了 YUI 3.0 Preview Release 1 的消息,早在4月的 OSDC.tw 2008 就在 YUI 開發者 Nate Kocheley 介紹 YUI 的場子聽到他預告今年會有 YUI 3.0 的消息,果然很快就有了 PR1 的消息。而且也預告了今年十月會有 PR2,而十二月則會推出第一個 Beta 版本。

當然,對開發者而言,要關注的部份就是整個 framework 架構的改變,以及使用的方式。首先,對於 YUI 2.x 的使用者不太好的消息就是:

No. YUI 3.0 builds off of the YUI 2.x codeline, but we’ve evolved most of the core APIs in working toward the five key goals described above. As a result, migrating from YUI 2.x to 3.x will require effort at the implementation level.

簡單地說就是要用 3.0 重寫啦!雖然不能無痛升級,但我覺得改 major version 換架構還是可以接受的事情,至少從它的演變來看,倒是納入了不少別的 framework 的一些長處,對於 YUI 長遠的發展,早點換新架構真是長痛不如短痛!

那 3.0 揪~~竟有什麼改變呢?

  • 冗長的 YAHOO.xxx.yyy 終於被 deprecated 了!取而代之的是 Y,這樣大家就可以少一步做 alias 的動作了。
  • 把 2.x 中的 DOM, Element 還有 Selector 算是整合進 Node 這個元件,所以可以直接使用 Y.get(selector) 來取得某個 DOM element 變成 YUI Node,這種感覺跟 jQuery 的 $(selector) 很像喔 😛 而且 DOM 操作的 API 也更多更完整了。
  • 在 jQuery 裡最酷的串接 (chaining) 功能,在 YUI 3 中也被實現啦!所以已經可以寫出 Y.all('.demo').addClass('enabled'); 這樣的 code,這就叫做「見賢思齊」嗎?
  • 可以動態載入 YUI 的元件或是 plugin,也就是可以使用 plug API 接在某個 Node 後來套用,就是「用之則行,舍之則藏」的最好表現(我可以說孔老夫子真是太威了嗎?)

當然整個 YUI 還有許多改變,不過目前還在 PR 階段,而且很多「UI」也還沒進 YUI 3,不過如果你的心臟真的夠大顆,也是可以 YUI 2, 3 混搭,目前來說應該是沒有什麼問題的,不過我試了一下套用新的 YUI 3 Grid Reset/Grid CSS 在我某個 project 裡,馬上就整個亂亂擼了...XD UPDATE: 原來改一些小地方就可以了)

結論就是,若要踏上 YUI 3 的不歸路(其實新的設計我比較喜歡一點 :P),那就及早用 YUI 3 的架構改寫吧!