o mágico mundo de web components

44
O Mágico Mundo De Web Components @mteusortiz

Upload: mateus-ortiz

Post on 10-May-2015

122 views

Category:

Technology


2 download

DESCRIPTION

Present at beltrao In Tech

TRANSCRIPT

Page 1: O Mágico mundo de Web Components

O Mágico Mundo De

Web Components

@mteusortiz

Page 2: O Mágico mundo de Web Components

@mteusortiz/mateusortiz

Front-End Developer

Page 3: O Mágico mundo de Web Components
Page 4: O Mágico mundo de Web Components
Page 5: O Mágico mundo de Web Components

Web Components

Page 6: O Mágico mundo de Web Components

HTML5 é o Futuro?

Page 7: O Mágico mundo de Web Components
Page 8: O Mágico mundo de Web Components

O Futuro

Page 9: O Mágico mundo de Web Components
Page 10: O Mágico mundo de Web Components

<x-heart>

http://mateusortiz.github.io/x-heart/

Page 11: O Mágico mundo de Web Components
Page 12: O Mágico mundo de Web Components

Web Components

Shadow DOM

Template

Custom Elements

HTML Imports

Decorators

Page 13: O Mágico mundo de Web Components

Custom Elements

Page 14: O Mágico mundo de Web Components

Antes com <element>

<element name="x-button" constructor="XBUTTON" attributes="lg sm xs"> <!-- Content --> </element>

Page 15: O Mágico mundo de Web Components

Antes com <element>

<element name="x-button" extends="button"> <!-- Content --> </element>

Page 16: O Mágico mundo de Web Components

http://goo.gl/GWatuU

Page 17: O Mágico mundo de Web Components

com JS<my-widget></my-widget>

var WidgetProto = Object.create(HTMLElement.prototype); !WidgetProto.createdCallback = function() { this.textContent = "BeltraoInTech"; }; !var Widget = document.registerElement('my-widget', { prototype: WidgetProto });

Page 18: O Mágico mundo de Web Components

Lifecycle Callbacks

createdCallback();attachedCallback();detachedCallback();attributeChangedCallback();

Page 19: O Mágico mundo de Web Components

Funciona no IE6

Page 20: O Mágico mundo de Web Components
Page 21: O Mágico mundo de Web Components

tpolymer-project.org

Page 22: O Mágico mundo de Web Components

tx-tags.org

Page 23: O Mágico mundo de Web Components

W3C standards platform polyfills

Template shadow dom HTML ImportsCustom Elements

Page 24: O Mágico mundo de Web Components

Com Polymer

<polymer-element name="x-button" attributes="color"> <script> Polymer('x-button', { color: 'red', created: function() { // ... } }); </script> </polymer-element>

Page 25: O Mágico mundo de Web Components

Lifecycle Callbacks Polymer

created();

detached();attributeChanged();

attached();

Page 26: O Mágico mundo de Web Components

Template

Page 27: O Mágico mundo de Web Components

Templates são pedaços

inertes de DOM que podem ser

reutilizados.

Page 28: O Mágico mundo de Web Components

# GAMBIARRA

existe vários Templates para server-side e client-side

Page 29: O Mágico mundo de Web Components

<template>

Page 30: O Mágico mundo de Web Components

como criar?<template> <p>BeltraoInTech...</p> <img src="beltrao.png"/> </template>

Page 31: O Mágico mundo de Web Components

como usar?

var tmpl = document.querySelector("#template"); tmpl.content.querySelector("img").src = "dog.gif"; document.body.appendChild(tmpl.content.cloneNode(true));

Page 32: O Mágico mundo de Web Components

Shadow DOM

Page 33: O Mágico mundo de Web Components

O SHADOW DOM encapsula STYLE e MARCAÇÃO.

Page 34: O Mágico mundo de Web Components

<iframe>

Page 35: O Mágico mundo de Web Components

Shadow Dom é a mesma tecnologia usada pelos fabricantes de navegadores para implemetar as

tags como <video> e <textarea>.

Page 36: O Mágico mundo de Web Components
Page 37: O Mágico mundo de Web Components

tmas voltaram atrás

Page 38: O Mágico mundo de Web Components

exemplo Shadow Dom

<div class="widget"></div>

var host = document.querySelector(".widget"); var root = host.createShadowRoot(); root.innerHTML = "<h1>Estou dentro da div</h1>";

Page 39: O Mágico mundo de Web Components

Encapsula style, marcação e script

Page 40: O Mágico mundo de Web Components

HTML Imports

Page 41: O Mágico mundo de Web Components

t importações carregar

documentos externos em nossa página.

Page 42: O Mágico mundo de Web Components

HTML Import<link rel="import" href="beltra-tech.html">

Page 43: O Mágico mundo de Web Components
Page 44: O Mágico mundo de Web Components

Obrigado

TWITTER.COM/MTEUSORTIZGITHUB.COM/MATEUSORTIZ