web component

52
Web Components 전용우 12년 7월 19일 목요일

Upload: yongwoo-jeon

Post on 22-May-2015

1.383 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Web component

Web Components전용우

12년 7월 19일 목요일

Page 2: Web component

Google I/O 2012

The Web Platform's Cutting Edge.

12년 7월 19일 목요일

Page 3: Web component

12년 7월 19일 목요일

Page 4: Web component

12년 7월 19일 목요일

Page 5: Web component

12년 7월 19일 목요일

Page 6: Web component

12년 7월 19일 목요일

Page 7: Web component

12년 7월 19일 목요일

Page 8: Web component

UI Component

12년 7월 19일 목요일

Page 9: Web component

Widget

12년 7월 19일 목요일

Page 10: Web component

12년 7월 19일 목요일

Page 11: Web component

Resource

<link rel="stylesheet" href="../assets/scrollview/horizontal.css" type="text/css" charset="utf-8"> <script src="http://yui.yahooapis.com/3.5.1/build/yui/yui-min.js"></script>

12년 7월 19일 목요일

Page 12: Web component

HTML<div id="scrollview-container"> <div id="scrollview-header"> <h1>Paged ScrollView</h1> </div>

<div id="scrollview-content" class="yui3-scrollview-loading"> <ul> <li><img src="c621e0b501.jpg" alt="Above The City II"></li> <li><img src="1373a0ef89.jpg" alt="Walls and Canyon"></li> <li><img src="4303e8eaea.jpg" alt="Stairs Using In Situ Stone"></li> <li><img src="854e8c0ef3.jpg" alt="Tree Silhouette"></li> </ul> </div>

<div id="scrollview-pager"> <button id="scrollview-prev">Prev</button> <button id="scrollview-next">Next</button> </div></div>

<div id="additional-content"> <p> Aliquam nec auctor lectus. Etiam ut ipsum a nibh iaculis fringilla.</p> <p>Aliquam nec auctor lectus. Etiam ut ipsum a nibh iaculis fringilla.</p></div>

12년 7월 19일 목요일

Page 13: Web component

JavaScriptYUI().use('scrollview', 'scrollview-paginator', function(Y) {

var scrollView = new Y.ScrollView({ id: "scrollview", srcNode : '#scrollview-content', width : 320, flick: { minDistance:10, minVelocity:0.3, axis: "x" } });

scrollView.plug(Y.Plugin.ScrollViewPaginator, { selector: 'li' });

scrollView.render();});

12년 7월 19일 목요일

Page 14: Web component

http://www.flickr.com/photos/exalthim/2150224411/

12년 7월 19일 목요일

Page 15: Web component

Complexity

12년 7월 19일 목요일

Page 16: Web component

Performance

12년 7월 19일 목요일

Page 17: Web component

Resource

12년 7월 19일 목요일

Page 18: Web component

Rendering

12년 7월 19일 목요일

Page 19: Web component

Web Components

12년 7월 19일 목요일

Page 20: Web component

• Shadow DOM

• Custom Element

• Template

• Decorator

12년 7월 19일 목요일

Page 21: Web component

Shadow DOM

12년 7월 19일 목요일

Page 22: Web component

12년 7월 19일 목요일

Page 23: Web component

<div id="scrollview-container"> <div id="scrollview-header"> <h1>Paged ScrollView</h1> </div>

<div id="scrollview-content" class="yui3-scrollview-loading"> <ul> <li><img src="c621e0b501.jpg" alt="Above The City II"></li> <li><img src="1373a0ef89.jpg" alt="Walls and Canyon"></li> <li><img src="4303e8eaea.jpg" alt="Stairs Using In Situ Stone"></li> <li><img src="854e8c0ef3.jpg" alt="Tree Silhouette"></li> </ul> </div>

<div id="scrollview-pager"> <button id="scrollview-prev">Prev</button> <button id="scrollview-next">Next</button> </div></div>

<div id="additional-content"> <p> Aliquam nec auctor lectus. Etiam ut ipsum a nibh iaculis fringilla.</p> <p>Aliquam nec auctor lectus. Etiam ut ipsum a nibh iaculis fringilla.</p></div>

12년 7월 19일 목요일

Page 24: Web component

<div id="scrollview-container"> <div id="scrollview-header"> <h1>Paged ScrollView</h1> </div>

<div id="scrollview-content" class="yui3-scrollview-loading"> <ul> <li><img src="c621e0b501.jpg" alt="Above The City II"></li> <li><img src="1373a0ef89.jpg" alt="Walls and Canyon"></li> <li><img src="4303e8eaea.jpg" alt="Stairs Using In Situ Stone"></li> <li><img src="854e8c0ef3.jpg" alt="Tree Silhouette"></li> </ul> </div>

<div id="scrollview-pager"> <button id="scrollview-prev">Prev</button> <button id="scrollview-next">Next</button> </div></div>

<div id="additional-content"> <p> Aliquam nec auctor lectus. Etiam ut ipsum a nibh iaculis fringilla.</p> <p>Aliquam nec auctor lectus. Etiam ut ipsum a nibh iaculis fringilla.</p></div>

12년 7월 19일 목요일

Page 25: Web component

<x-slide> <li><img src="c621e0b501.jpg" alt="Above The City II"></li> <li><img src="1373a0ef89.jpg" alt="Walls and Canyon"></li> <li><img src="4303e8eaea.jpg" alt="Stair In Stone"></li> <li><img src="854e8c0ef3.jpg" alt="Tree Silhouette"></li></x-slide>

12년 7월 19일 목요일

Page 26: Web component

<div id="scrollview-container"> <div id="scrollview-header"> <h1>Paged ScrollView</h1> </div>

<div id="scrollview-content" class="yui3-scrollview-loading"> <ul> <li><img src="c621e0b501.jpg" alt="Above The City II"></li> <li><img src="1373a0ef89.jpg" alt="Walls and Canyon"></li> <li><img src="4303e8eaea.jpg" alt="Stairs Using In Situ Stone"></li> <li><img src="854e8c0ef3.jpg" alt="Tree Silhouette"></li> </ul> </div>

<div id="scrollview-pager"> <button id="scrollview-prev">Prev</button> <button id="scrollview-next">Next</button> </div></div>

<div id="additional-content"> <p> Aliquam nec auctor lectus. Etiam ut ipsum a nibh iaculis fringilla.</p> <p>Aliquam nec auctor lectus. Etiam ut ipsum a nibh iaculis fringilla.</p></div>

<x-slide> <li><img src="c621e0b501.jpg" alt="Above The City II"></li> <li><img src="1373a0ef89.jpg" alt="Walls and Canyon"></li> <li><img src="4303e8eaea.jpg" alt="Stair In Stone"></li> <li><img src="854e8c0ef3.jpg" alt="Tree Silhouette"></li></x-slide>

12년 7월 19일 목요일

Page 27: Web component

Encapsulation

12년 7월 19일 목요일

Page 28: Web component

12년 7월 19일 목요일

Page 29: Web component

12년 7월 19일 목요일

Page 30: Web component

12년 7월 19일 목요일

Page 31: Web component

<x-slide> <li><img src="c621e0b501.jpg" alt="Above The City II"></li> <li><img src="1373a0ef89.jpg" alt="Walls and Canyon"></li> <li><img src="4303e8eaea.jpg" alt="Stair In Stone"></li> <li><img src="854e8c0ef3.jpg" alt="Tree Silhouette"></li></x-slide>

12년 7월 19일 목요일

Page 32: Web component

<x-slide> <li><img src="c621e0b501.jpg" alt="Above The City II"></li> <li><img src="1373a0ef89.jpg" alt="Walls and Canyon"></li> <li><img src="4303e8eaea.jpg" alt="Stair In Stone"></li> <li><img src="854e8c0ef3.jpg" alt="Tree Silhouette"></li></x-slide>

Rendered

12년 7월 19일 목요일

Page 33: Web component

<div id="scrollview-container"> <div id="scrollview-header"> <h1>Paged ScrollView</h1> </div>

<div id="scrollview-content" class="yui3-scrollview-loading"> <ul> <li><img src="c621e0b501.jpg" alt="Above The City II"></li> <li><img src="1373a0ef89.jpg" alt="Walls and Canyon"></li> <li><img src="4303e8eaea.jpg" alt="Stairs Using In Situ Stone"></li> <li><img src="854e8c0ef3.jpg" alt="Tree Silhouette"></li> </ul> </div>

<div id="scrollview-pager"> <button id="scrollview-prev">Prev</button> <button id="scrollview-next">Next</button> </div></div>

<div id="additional-content"> <p> Aliquam nec auctor lectus. Etiam ut ipsum a nibh iaculis fringilla.</p> <p>Aliquam nec auctor lectus. Etiam ut ipsum a nibh iaculis fringilla.</p></div>

<x-slide> <li><img src="c621e0b501.jpg" alt="Above The City II"></li> <li><img src="1373a0ef89.jpg" alt="Walls and Canyon"></li> <li><img src="4303e8eaea.jpg" alt="Stair In Stone"></li> <li><img src="854e8c0ef3.jpg" alt="Tree Silhouette"></li></x-slide>

Rendered

12년 7월 19일 목요일

Page 34: Web component

<div id="scrollview-container"> <div id="scrollview-header"> <h1>Paged ScrollView</h1> </div>

<div id="scrollview-content" class="yui3-scrollview-loading"> <ul> <li><img src="c621e0b501.jpg" alt="Above The City II"></li> <li><img src="1373a0ef89.jpg" alt="Walls and Canyon"></li> <li><img src="4303e8eaea.jpg" alt="Stairs Using In Situ Stone"></li> <li><img src="854e8c0ef3.jpg" alt="Tree Silhouette"></li> </ul> </div>

<div id="scrollview-pager"> <button id="scrollview-prev">Prev</button> <button id="scrollview-next">Next</button> </div></div>

<div id="additional-content"> <p> Aliquam nec auctor lectus. Etiam ut ipsum a nibh iaculis fringilla.</p> <p>Aliquam nec auctor lectus. Etiam ut ipsum a nibh iaculis fringilla.</p></div>

<x-slide> <li><img src="c621e0b501.jpg" alt="Above The City II"></li> <li><img src="1373a0ef89.jpg" alt="Walls and Canyon"></li> <li><img src="4303e8eaea.jpg" alt="Stair In Stone"></li> <li><img src="854e8c0ef3.jpg" alt="Tree Silhouette"></li></x-slide>

RenderedShadow DOM

12년 7월 19일 목요일

Page 35: Web component

<video width="320" height="240" controls="controls"> <source src="movie.mp4" type="video/mp4" /> <source src="movie.ogg" type="video/ogg" /></video>

12년 7월 19일 목요일

Page 37: Web component

video tag?

12년 7월 19일 목요일

Page 38: Web component

Custom Element

12년 7월 19일 목요일

Page 39: Web component

slide-component.html <element name="x-slide" extends="ul" constructor="SlideControl"> <template> <style></style> <div class="slide"> <ul> <content select="li"></content> </ul> </div> </template>

<script> this.lifecycle({ "created":function(){} });

SlideControl.prototype={}; </script></element>

12년 7월 19일 목요일

Page 40: Web component

<link rel="components" href="slide-component.html"/>

<x-slide is="x-slide"> <li><img src="img/1.jpeg" height="333px" width="500px"/></li> <li><img src="img/2.jpeg" height="333px" width="500px"/></li> <li><img src="img/3.jpeg" height="333px" width="500px"/></li> <li><img src="img/4.jpeg" height="333px" width="500px"/></li></x-slide>

12년 7월 19일 목요일

Page 41: Web component

12년 7월 19일 목요일

Page 42: Web component

<template> <style>

.slide{ overflow:hidden; width : 500px; }

</style> <div class="slide"> <ul> <content select="li"></content> </ul> </div></template>

Template

12년 7월 19일 목요일

Page 43: Web component

<template> <style>

.slide{ overflow:hidden; width : 500px; }

</style> <div class="slide"> <ul> <content select="li"></content> </ul> </div></template>

Template

12년 7월 19일 목요일

Page 44: Web component

12년 7월 19일 목요일

Page 45: Web component

12년 7월 19일 목요일

Page 46: Web component

12년 7월 19일 목요일

Page 47: Web component

<x-slide is="x-slide"> <li><img src="img/1.jpeg" height="333px" width="500px"/></li> <li><img src="img/2.jpeg" height="333px" width="500px"/></li> <li><img src="img/3.jpeg" height="333px" width="500px"/></li> <li><img src="img/4.jpeg" height="333px" width="500px"/></li></x-slide>

<div class="slide"> <ul> <content select="li"></content> </ul></div>

12년 7월 19일 목요일

Page 48: Web component

<element name="x-slide" extends="ul" constructor="SlideControl">

---

function SlideControl(){};

SlideControl.prototype { "currentNum" : function(){}, "lastNum" : function(){} };

var slide = new SlideControl();// var slide = document.createElement("x-slide");

document.body.appendChild(slide);slide.addEventListener("click", function (event) { event.target.currentNum();});side.lastNum();

silde instanceof HTMLElement //==> truesilde instanceof HTMLULElement //==> true

HTMLElement

12년 7월 19일 목요일

Page 49: Web component

this.lifecycle({

"created": function() {},

"attributeChanged": function() {},

"inserted": function() {},

"removed": function() {}

});

lifecycle

12년 7월 19일 목요일

Page 50: Web component

Web Components

• Easy-to-Use

• Semantic

• High Performance

12년 7월 19일 목요일

Page 51: Web component

Future?

12년 7월 19일 목요일

Page 52: Web component

감사합니다.

12년 7월 19일 목요일