SlideShare una empresa de Scribd logo
1 de 29
YUI() An Introduction to YUI 3 Jenny Han Donnelly YUI Library
YUI Library Overview ,[object Object],[object Object],[object Object],[object Object]
Introducing YUI 3 ,[object Object],[object Object],[object Object]
The Sandbox Model
The Sandbox Model <script src=&quot;yui-min.js&quot;> <script> YUI().use(&quot;anim&quot;, function(Y) { ... }); </script>
Optimized Loading ,[object Object],[object Object],[object Object],[object Object],[object Object],<script src=&quot;http://yui.yahooapis.com/combo?oop-min.js&event-min.js..&quot;> <script src=&quot;oop-min.js&quot;> <script src=&quot;event-min.js&quot;> <script src=&quot;attribute-min.js&quot;> <script src=&quot;base-min.js&quot;> <script src=&quot;dom-min.js&quot;> <script src=&quot;node-min.js&quot;> <script src=&quot;anim-min.js&quot;> var a = new Y.Anim({...}); a.run();
Protection from Other Modules ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The YUI Buffet
Sub-Module Architecture ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],YUI().use( &quot;io-base&quot; , function(Y) {…}) YUI().use( &quot;io-form&quot; ,  &quot;io-xdr&quot; , function(Y) {…}) YUI().use( &quot;io&quot; , function(Y) {…})
IO's K-Weight Profile
Extension and Plugin Architecture Overlay Tooltip myOverlay Positioning Adv. Positioning Shimming/Stacking Header/Body/Footer Animation IO Binding Widget
The Node Wrapper
Working with DOM Elements in YUI 3 ,[object Object],[object Object],[object Object],Y.get(…).addClass(&quot;current&quot;).on(&quot;click&quot;, handler);
Supports ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Normalizes ,[object Object],[object Object],[object Object],[object Object]
Enhances ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Extendable ,[object Object],[object Object],[object Object],[object Object]
Constrainable Node is the single point of access to the DOM. Makes YUI 3 ideal as a trusted source for &quot;constrained&quot; environments like Caja and Ad-safe.
NodeList * The Costco to Node’s Kwik-E Mart var items = Y. all (&quot;.actions li&quot;); items.addClass(&quot;disabled&quot;); items.set(&quot;title&quot;, &quot;Item Disabled&quot;); items.each(function(node) { node.addClass(&quot;disabled); node.set(&quot;title&quot;, &quot;Item Disabled&quot;); });
YUI 3 Node API ,[object Object],[object Object],[object Object],[object Object],[object Object]
The Event System
Event Listeners & Event Facades // Dom Event myElement.on(&quot;click&quot;, function( e ) { if (! e.target .hasClass(&quot;disabled&quot;)) { e.preventDefault() ; } }); // Custom Event myWidget.on(&quot;select&quot;, function( e ) { if ( e.newVal  < 200) { e.preventDefault() ; } });
Detaching Listeners // YUI 3 var   handle   = overlay.on(&quot;show&quot;, myShowHandler); handle .detach(); // Or overlay.on(&quot; myapp|show &quot;, myShowHandler); overlay.on(&quot; myapp|hide &quot;, myHideHandler); overlay.detach(&quot; myapp|show &quot;); overlay.detach(&quot; myapp|* &quot;);
Custom Event Flow: On/Default/After On On Default Behavior After After After this.fire(&quot;select&quot;); e.stopImmediatePropagation(); e.preventDefault(); e.stopImmediatePropagation();
DOM Event Delegation Y.on(&quot;delegate&quot;, function(e) { e.target.addClass(&quot;selected&quot;) }, &quot;ul&quot;, &quot;click&quot;, &quot;li&quot;);
Custom Event Delegation Menu MenuItem On On Def. Behavior After After After this.fire(&quot;menuitem:select&quot;) On Def. Behavior After After e.stopPropagation()
YUI 3 Event Model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
YUI Library Overview ,[object Object],[object Object]
Thanks! ,[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

Destacado

Destacado (18)

Yahoo Pipes and YQL
Yahoo Pipes and YQLYahoo Pipes and YQL
Yahoo Pipes and YQL
 
1st Ignite Seoul 4. 박일
1st Ignite Seoul  4. 박일1st Ignite Seoul  4. 박일
1st Ignite Seoul 4. 박일
 
[Ignite 강남 2016] 유혜경-사회복지사의 공감력고군분투
[Ignite 강남 2016] 유혜경-사회복지사의 공감력고군분투[Ignite 강남 2016] 유혜경-사회복지사의 공감력고군분투
[Ignite 강남 2016] 유혜경-사회복지사의 공감력고군분투
 
Ignite Seoul 2-9. 이태우 Code Quality
Ignite Seoul 2-9. 이태우 Code QualityIgnite Seoul 2-9. 이태우 Code Quality
Ignite Seoul 2-9. 이태우 Code Quality
 
1st Ignite Seoul 14 조민희
1st Ignite Seoul  14 조민희1st Ignite Seoul  14 조민희
1st Ignite Seoul 14 조민희
 
Y! Open Strategy Overview [partial]
Y! Open Strategy Overview [partial]Y! Open Strategy Overview [partial]
Y! Open Strategy Overview [partial]
 
Ignite Seoul 2-5. 이강석 얼리어답터 스마트폰을 말하다
Ignite Seoul 2-5. 이강석 얼리어답터 스마트폰을 말하다Ignite Seoul 2-5. 이강석 얼리어답터 스마트폰을 말하다
Ignite Seoul 2-5. 이강석 얼리어답터 스마트폰을 말하다
 
[Hadoop] NexR Terapot: Massive Email Archiving
[Hadoop] NexR Terapot: Massive Email Archiving[Hadoop] NexR Terapot: Massive Email Archiving
[Hadoop] NexR Terapot: Massive Email Archiving
 
[Ignite 강남 2016] 김영진-당신의 이름에서 회사를 지우면?
[Ignite 강남 2016] 김영진-당신의 이름에서 회사를 지우면?[Ignite 강남 2016] 김영진-당신의 이름에서 회사를 지우면?
[Ignite 강남 2016] 김영진-당신의 이름에서 회사를 지우면?
 
Map Mashup Trend
Map Mashup TrendMap Mashup Trend
Map Mashup Trend
 
[Ignite 강남 2016] 이지현 비주얼씽킹 세계여행
[Ignite 강남 2016] 이지현 비주얼씽킹 세계여행[Ignite 강남 2016] 이지현 비주얼씽킹 세계여행
[Ignite 강남 2016] 이지현 비주얼씽킹 세계여행
 
Ignite Seoul 2-10. 이현남 Cloud Computing
Ignite Seoul 2-10. 이현남 Cloud ComputingIgnite Seoul 2-10. 이현남 Cloud Computing
Ignite Seoul 2-10. 이현남 Cloud Computing
 
[Ignite 강남 2016] 차성국 아들과 함께한 국토대장정
[Ignite 강남 2016] 차성국 아들과 함께한 국토대장정[Ignite 강남 2016] 차성국 아들과 함께한 국토대장정
[Ignite 강남 2016] 차성국 아들과 함께한 국토대장정
 
[Ignite 강남 2016] 황준석-사회생활 초년생의 꿈을 찾는 항해
[Ignite 강남 2016] 황준석-사회생활 초년생의 꿈을 찾는 항해[Ignite 강남 2016] 황준석-사회생활 초년생의 꿈을 찾는 항해
[Ignite 강남 2016] 황준석-사회생활 초년생의 꿈을 찾는 항해
 
Mindmap At Works
Mindmap At WorksMindmap At Works
Mindmap At Works
 
행복한 1인기업 이야기 : Happy 1Man Company
행복한 1인기업 이야기 : Happy 1Man Company행복한 1인기업 이야기 : Happy 1Man Company
행복한 1인기업 이야기 : Happy 1Man Company
 
Visual Presentation - 시각적 프리젠테이션
Visual Presentation  - 시각적 프리젠테이션Visual Presentation  - 시각적 프리젠테이션
Visual Presentation - 시각적 프리젠테이션
 
[Ignite 강남 2016] 천성권 지속가능한 딸바보로 살기
[Ignite 강남 2016] 천성권 지속가능한 딸바보로 살기[Ignite 강남 2016] 천성권 지속가능한 딸바보로 살기
[Ignite 강남 2016] 천성권 지속가능한 딸바보로 살기
 

Similar a YDN KR Tech Talk : YUI 3.0

Wookie Meetup
Wookie MeetupWookie Meetup
Wookie Meetup
scottw
 
Wookie Meetup
Wookie MeetupWookie Meetup
Wookie Meetup
scottw
 

Similar a YDN KR Tech Talk : YUI 3.0 (20)

Introduction to JQuery
Introduction to JQueryIntroduction to JQuery
Introduction to JQuery
 
2009 Hackday Taiwan Yui
2009 Hackday Taiwan Yui2009 Hackday Taiwan Yui
2009 Hackday Taiwan Yui
 
jQuery Performance Rules
jQuery Performance RulesjQuery Performance Rules
jQuery Performance Rules
 
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
 
J Query Presentation
J Query PresentationJ Query Presentation
J Query Presentation
 
Developing and testing ajax components
Developing and testing ajax componentsDeveloping and testing ajax components
Developing and testing ajax components
 
YUI 3
YUI 3YUI 3
YUI 3
 
JWU Guest Talk: JavaScript and AJAX
JWU Guest Talk: JavaScript and AJAXJWU Guest Talk: JavaScript and AJAX
JWU Guest Talk: JavaScript and AJAX
 
Jquery 1
Jquery 1Jquery 1
Jquery 1
 
Javascript: Ajax & DOM Manipulation v1.2
Javascript: Ajax & DOM Manipulation v1.2Javascript: Ajax & DOM Manipulation v1.2
Javascript: Ajax & DOM Manipulation v1.2
 
Wookie Meetup
Wookie MeetupWookie Meetup
Wookie Meetup
 
Wookie Meetup
Wookie MeetupWookie Meetup
Wookie Meetup
 
Introduction to Prototype JS Framework
Introduction to Prototype JS FrameworkIntroduction to Prototype JS Framework
Introduction to Prototype JS Framework
 
Evolution of API With Blogging
Evolution of API With BloggingEvolution of API With Blogging
Evolution of API With Blogging
 
Introduction into Struts2 jQuery Grid Tags
Introduction into Struts2 jQuery Grid TagsIntroduction into Struts2 jQuery Grid Tags
Introduction into Struts2 jQuery Grid Tags
 
&lt;img src="xss.com">
&lt;img src="xss.com">&lt;img src="xss.com">
&lt;img src="xss.com">
 
Fav
FavFav
Fav
 
Client-side JavaScript Vulnerabilities
Client-side JavaScript VulnerabilitiesClient-side JavaScript Vulnerabilities
Client-side JavaScript Vulnerabilities
 
JQuery Basics
JQuery BasicsJQuery Basics
JQuery Basics
 
DevDays09 Internet Explorer 8
DevDays09 Internet Explorer 8DevDays09 Internet Explorer 8
DevDays09 Internet Explorer 8
 

Más de Jinho Jung

Ignite seoul 8회 12 천성권 혼나지 않는 남편으로 살기
Ignite seoul 8회 12 천성권 혼나지 않는 남편으로 살기Ignite seoul 8회 12 천성권 혼나지 않는 남편으로 살기
Ignite seoul 8회 12 천성권 혼나지 않는 남편으로 살기
Jinho Jung
 
Ignite seoul 7th 2-8 이민호 아모르법칙
Ignite seoul 7th   2-8 이민호 아모르법칙Ignite seoul 7th   2-8 이민호 아모르법칙
Ignite seoul 7th 2-8 이민호 아모르법칙
Jinho Jung
 
Ignite seoul 7th 2-7 박상희 삶의 트레이드오프
Ignite seoul 7th   2-7 박상희 삶의 트레이드오프Ignite seoul 7th   2-7 박상희 삶의 트레이드오프
Ignite seoul 7th 2-7 박상희 삶의 트레이드오프
Jinho Jung
 
Ignite seoul 7th 2-6 조형준 사회복지 스토리를 디자인하다
Ignite seoul 7th   2-6 조형준 사회복지 스토리를 디자인하다Ignite seoul 7th   2-6 조형준 사회복지 스토리를 디자인하다
Ignite seoul 7th 2-6 조형준 사회복지 스토리를 디자인하다
Jinho Jung
 
Ignite seoul 7th 2-5 조정화 퇴사후 5년 자유와 잉여사이
Ignite seoul 7th   2-5 조정화 퇴사후 5년 자유와 잉여사이Ignite seoul 7th   2-5 조정화 퇴사후 5년 자유와 잉여사이
Ignite seoul 7th 2-5 조정화 퇴사후 5년 자유와 잉여사이
Jinho Jung
 
Ignite seoul 7th 2-4 소은아 어린 왕자가 찾는 낭만지구인
Ignite seoul 7th   2-4 소은아 어린 왕자가 찾는 낭만지구인Ignite seoul 7th   2-4 소은아 어린 왕자가 찾는 낭만지구인
Ignite seoul 7th 2-4 소은아 어린 왕자가 찾는 낭만지구인
Jinho Jung
 

Más de Jinho Jung (20)

[Ignite 강남 2016] 조현길 경영자처럼 일할테니 경영자의 월급을 주세ᄋ...
[Ignite 강남 2016] 조현길 경영자처럼 일할테니 경영자의 월급을 주세ᄋ...[Ignite 강남 2016] 조현길 경영자처럼 일할테니 경영자의 월급을 주세ᄋ...
[Ignite 강남 2016] 조현길 경영자처럼 일할테니 경영자의 월급을 주세ᄋ...
 
[Ignite 강남 2016] 장정화-내인생을바꾼 improv
[Ignite 강남 2016] 장정화-내인생을바꾼 improv[Ignite 강남 2016] 장정화-내인생을바꾼 improv
[Ignite 강남 2016] 장정화-내인생을바꾼 improv
 
[Ignite 강남 2016] 유소희-job nomad
[Ignite 강남 2016] 유소희-job nomad[Ignite 강남 2016] 유소희-job nomad
[Ignite 강남 2016] 유소희-job nomad
 
[Ignite 강남 2016] 김태길 무엇이든 적어보세요
[Ignite 강남 2016] 김태길 무엇이든 적어보세요[Ignite 강남 2016] 김태길 무엇이든 적어보세요
[Ignite 강남 2016] 김태길 무엇이든 적어보세요
 
[Ignite 강남 2016] 정기원-스타트업계의 멋진 여자들을 인터뷰해보았다
[Ignite 강남 2016] 정기원-스타트업계의 멋진 여자들을 인터뷰해보았다[Ignite 강남 2016] 정기원-스타트업계의 멋진 여자들을 인터뷰해보았다
[Ignite 강남 2016] 정기원-스타트업계의 멋진 여자들을 인터뷰해보았다
 
[Ignite 강남 2016] 이미화-일상,조용한혁명
[Ignite 강남 2016] 이미화-일상,조용한혁명[Ignite 강남 2016] 이미화-일상,조용한혁명
[Ignite 강남 2016] 이미화-일상,조용한혁명
 
[Ignite 강남 2016] 정해인 아빠가 먼저 피아노 배워도 되겠니
[Ignite 강남 2016] 정해인 아빠가 먼저 피아노 배워도 되겠니[Ignite 강남 2016] 정해인 아빠가 먼저 피아노 배워도 되겠니
[Ignite 강남 2016] 정해인 아빠가 먼저 피아노 배워도 되겠니
 
[Ignite 강남 2016] 김홍균 모든 것은 누군가의 상상에서 시작됐다
[Ignite 강남 2016] 김홍균 모든 것은 누군가의 상상에서 시작됐다[Ignite 강남 2016] 김홍균 모든 것은 누군가의 상상에서 시작됐다
[Ignite 강남 2016] 김홍균 모든 것은 누군가의 상상에서 시작됐다
 
[Ignite 강남 2016] 정예진 맞춤법은 꼭 지켜야합니다
[Ignite 강남 2016] 정예진 맞춤법은 꼭 지켜야합니다[Ignite 강남 2016] 정예진 맞춤법은 꼭 지켜야합니다
[Ignite 강남 2016] 정예진 맞춤법은 꼭 지켜야합니다
 
Ignite seoul 8회 12 천성권 혼나지 않는 남편으로 살기
Ignite seoul 8회 12 천성권 혼나지 않는 남편으로 살기Ignite seoul 8회 12 천성권 혼나지 않는 남편으로 살기
Ignite seoul 8회 12 천성권 혼나지 않는 남편으로 살기
 
Hackathon & hack day 이야기
Hackathon & hack day 이야기Hackathon & hack day 이야기
Hackathon & hack day 이야기
 
서울스케쳐 전시계획서
서울스케쳐 전시계획서서울스케쳐 전시계획서
서울스케쳐 전시계획서
 
행복화실 2014 - 12주 과정 Happy drawing 2014
행복화실 2014 - 12주 과정 Happy drawing 2014행복화실 2014 - 12주 과정 Happy drawing 2014
행복화실 2014 - 12주 과정 Happy drawing 2014
 
2014 정진호 개인전 엽서 - 자유의 언덕에서
2014 정진호 개인전 엽서 - 자유의 언덕에서2014 정진호 개인전 엽서 - 자유의 언덕에서
2014 정진호 개인전 엽서 - 자유의 언덕에서
 
ignite seoul 7회 2부 2 신지현 오른손이 하는 일을 왼손이 알아야 하느...
ignite seoul 7회 2부 2 신지현 오른손이 하는 일을 왼손이 알아야 하느...ignite seoul 7회 2부 2 신지현 오른손이 하는 일을 왼손이 알아야 하느...
ignite seoul 7회 2부 2 신지현 오른손이 하는 일을 왼손이 알아야 하느...
 
Ignite seoul 7th 2-8 이민호 아모르법칙
Ignite seoul 7th   2-8 이민호 아모르법칙Ignite seoul 7th   2-8 이민호 아모르법칙
Ignite seoul 7th 2-8 이민호 아모르법칙
 
Ignite seoul 7th 2-7 박상희 삶의 트레이드오프
Ignite seoul 7th   2-7 박상희 삶의 트레이드오프Ignite seoul 7th   2-7 박상희 삶의 트레이드오프
Ignite seoul 7th 2-7 박상희 삶의 트레이드오프
 
Ignite seoul 7th 2-6 조형준 사회복지 스토리를 디자인하다
Ignite seoul 7th   2-6 조형준 사회복지 스토리를 디자인하다Ignite seoul 7th   2-6 조형준 사회복지 스토리를 디자인하다
Ignite seoul 7th 2-6 조형준 사회복지 스토리를 디자인하다
 
Ignite seoul 7th 2-5 조정화 퇴사후 5년 자유와 잉여사이
Ignite seoul 7th   2-5 조정화 퇴사후 5년 자유와 잉여사이Ignite seoul 7th   2-5 조정화 퇴사후 5년 자유와 잉여사이
Ignite seoul 7th 2-5 조정화 퇴사후 5년 자유와 잉여사이
 
Ignite seoul 7th 2-4 소은아 어린 왕자가 찾는 낭만지구인
Ignite seoul 7th   2-4 소은아 어린 왕자가 찾는 낭만지구인Ignite seoul 7th   2-4 소은아 어린 왕자가 찾는 낭만지구인
Ignite seoul 7th 2-4 소은아 어린 왕자가 찾는 낭만지구인
 

YDN KR Tech Talk : YUI 3.0

  • 1. YUI() An Introduction to YUI 3 Jenny Han Donnelly YUI Library
  • 2.
  • 3.
  • 5. The Sandbox Model <script src=&quot;yui-min.js&quot;> <script> YUI().use(&quot;anim&quot;, function(Y) { ... }); </script>
  • 6.
  • 7.
  • 9.
  • 11. Extension and Plugin Architecture Overlay Tooltip myOverlay Positioning Adv. Positioning Shimming/Stacking Header/Body/Footer Animation IO Binding Widget
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. Constrainable Node is the single point of access to the DOM. Makes YUI 3 ideal as a trusted source for &quot;constrained&quot; environments like Caja and Ad-safe.
  • 19. NodeList * The Costco to Node’s Kwik-E Mart var items = Y. all (&quot;.actions li&quot;); items.addClass(&quot;disabled&quot;); items.set(&quot;title&quot;, &quot;Item Disabled&quot;); items.each(function(node) { node.addClass(&quot;disabled); node.set(&quot;title&quot;, &quot;Item Disabled&quot;); });
  • 20.
  • 22. Event Listeners & Event Facades // Dom Event myElement.on(&quot;click&quot;, function( e ) { if (! e.target .hasClass(&quot;disabled&quot;)) { e.preventDefault() ; } }); // Custom Event myWidget.on(&quot;select&quot;, function( e ) { if ( e.newVal < 200) { e.preventDefault() ; } });
  • 23. Detaching Listeners // YUI 3 var handle = overlay.on(&quot;show&quot;, myShowHandler); handle .detach(); // Or overlay.on(&quot; myapp|show &quot;, myShowHandler); overlay.on(&quot; myapp|hide &quot;, myHideHandler); overlay.detach(&quot; myapp|show &quot;); overlay.detach(&quot; myapp|* &quot;);
  • 24. Custom Event Flow: On/Default/After On On Default Behavior After After After this.fire(&quot;select&quot;); e.stopImmediatePropagation(); e.preventDefault(); e.stopImmediatePropagation();
  • 25. DOM Event Delegation Y.on(&quot;delegate&quot;, function(e) { e.target.addClass(&quot;selected&quot;) }, &quot;ul&quot;, &quot;click&quot;, &quot;li&quot;);
  • 26. Custom Event Delegation Menu MenuItem On On Def. Behavior After After After this.fire(&quot;menuitem:select&quot;) On Def. Behavior After After e.stopPropagation()
  • 27.
  • 28.
  • 29.

Notas del editor

  1. Started 2005. Open sourced in 2006. 2.7.0 is current release. Mature and stable framework deployed across Yahoo! and all over the world. Incredible documentation. Active developer community.
  2. YUI 3 is the next generation of the YUI codebase. It&apos;s the culmination of all the lessons we&apos;ve learned from building YUI 2, and reflects the years of developer feedback we have received, as well as the latest and greatest front-end best practices. Lighter Emphasis on Code Reuse: Common Base, Plugins, Extensions Finer Grained Modules/Sub-Modules Easier Developer conveniences: flatter namespace, chainability, language enhancements, batch operations Consistent API Faster Loading Runtime performance
  3. Our sandbox model provides your own protected YUI environment with a built-in closure.
  4. The seed file defines the YUI global object. The YUI() statement returns an instance of YUI, which we call Y. The use() statement: Defines the modules to be loaded Loads them into the environment
  5. An asynchronous call is made to load the files without blocking. The dependencies are managed for you. By default, all the files are minified and combo-handled into a single HTTP request.
  6. Instances are now tied to a specific version of YUI. For example, if a web pages has a &amp;quot;finance&amp;quot; application on a portal page it will be tied to YUI version 3.4. If a &amp;quot;movies&amp;quot; application is loaded later on the same page, its code is tied to YUI version 3.0. Each sandbox&apos;s YUI version is protected from other code on the page. Currently your YUI() instance is tied to the library version at execution-time. In the future, we expect to support dynamic versioning.
  7. The YUI Buffet In YUI 3, you can pick and choose with a lot more granularity what you want to load on your page wth our new sub-module architecture.
  8. Sub-modules allow you to target specific functionality, without loading code you don&apos;t need. For instance, the IO utility consists of 5 sub-modules. You can load sub-modules independently in conjunction with one another as a rollup
  9. Not only is IO smaller in YUI 3 than in YUI 2, pulling in only the sub-modules you need can save you significant bandwidth as well. You&apos;ll see this kind of footprint optimization across every component in the library.
  10. In YUI, the Overlay class was harded coded with this set of functionality. Tooltip, which is a subclass of Overlay only needed a subset of the functionality but inherited the whole set anyway. In YUI 3, we have refactored classes and functionality to be more loosely coupled. Overlay now consists of 4 class extensions. Anim and IO are now instance plugins. Tooltip no longer needs to extend Overlay, it can use just the extensions that it needs.
  11. Node is a wrapper API for DOM elements. It provides a centralized, convenient, securable interface for working with DOM elements.
  12. In YUI 3 you are working with Node instances rather than directly with the DOM element. You can call methods on it directly rather than having to call a static method. You can add event handlers direclty also. These methods are chainable.
  13. Node supports the standard methods and properties of the HTMLElement API. Most methods are mapped directly. Properties are accessed through getter and setter methods.
  14. Certain DOM APIs are implemented inconsistently across the a-grade browsers. Node normalizes these inconsistencies into a single API.
  15. Node adds convenience APIs that are not in the DOM spec. Node exposes change events.
  16. Plugins add application-specific features to Nodes.
  17. A single point of access to the DOM API makes YUI 3 ideal as a trusted source in &amp;quot;constrained&amp;quot; environments such as Caja and Ad-Safe.
  18. The NodeList API is used to batch Node operations. The static method Node.all() returns a NodeList. The each() method accepts a custom batch function. A NodeList is not a live collection like a DOM collection. It is an array of Nodes that is a snapshot in time.
  19. The Custom Event system has been enhanced in YUI 3 to be lighter and more useful. This system drives the modular code architecture of the rest of the library.
  20. Event facades are normalized event objects passed to event handlers. They also pass important data values to custom event handlers.
  21. There are several different ways to detach event handlers in YUI 3: The on() method returns a value that can be stored and used to detach later. The on() method accepts a namespace prefix to an event that can be used to detach handlers. A wildcard may be used to detach all handlers assigned to a namespace.
  22. stopImmediatePropagation() stops any subsequent on and after listeners, but does not affect the default behavior. (also prevents bubbling.) preventDefault() prevents the default behavior. stopPropagation() only affects bubbling.
  23. Event delegation is a technique where events are handled by a single parent element instead of many child elements. Here, a Menu class manages multiple menuitem children. When the class initializes, it listens for the &amp;quot;menuitem:select&amp;quot; event to execute the selection function. In addItem(), each menuitem is registering the parent Menu as an event bubble target with addTarget(). Now whenever a menuitem fires a select event, it is handled by the parent Menu class. We can code a specific override as well, so that if the third menuitem is selected, that doesn&apos;t get bubbled to the parent&apos;s handler. Ideal for parent/child or manager/managed relationships
  24. Bubble notification flow for Menu/MenuItem example.