SlideShare a Scribd company logo
1 of 44
Download to read offline
O Mágico Mundo
De
Web Components
@mteusortiz
@mteusortiz
/mateusortiz
Front-End Developer
Web Components
HTML5 é o Futuro?
O Futuro
<x-heart>
http://mateusortiz.github.io/x-heart/
Web Components
Shadow DOM
Template
Custom Elements
HTML Imports
Decorators
Custom
Elements
Antes com <element>
<element name="x-button" constructor="XBUTTON"
attributes="lg sm xs">
<!-- Content -->
</element>
Antes com <element>
<element name="x-button" extends="button">
<!-- Content -->
</element>
http://goo.gl/GWatuU
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
});
Lifecycle Callbacks
createdCallback();
attachedCallback();
detachedCallback();
attributeChangedCallback();
Funciona no IE6
tpolymer-project.org
tx-tags.org
W3C standards platform polyfills
Template shadow dom HTML ImportsCustom Elements
Com Polymer
<polymer-element name="x-button" attributes="color">
<script>
Polymer('x-button', {
color: 'red',
created: function() {
// ...
}
});
</script>
</polymer-element>
Lifecycle Callbacks Polymer
created();
detached();
attributeChanged();
attached();
Template
Templates 	

são pedaços 	

inertes de DOM 	

que podem ser 	

reutilizados.
# GAMBIARRA
existe vários Templates para server-
side e client-side
<template>
como criar?
<template>
<p>BeltraoInTech...</p>
<img src="beltrao.png"/>
</template>
como usar?
var tmpl = document.querySelector("#template");
tmpl.content.querySelector("img").src = "dog.gif";
document.body.appendChild(tmpl.content.cloneNode(true));
Shadow	

DOM
O SHADOW DOM
encapsula STYLE 	

e MARCAÇÃO.
<iframe>
Shadow Dom é a mesma tecnologia usada pelos
fabricantes de navegadores para implemetar as
tags como <video> e <textarea>.
tmas voltaram atrás
exemplo Shadow Dom
<div class="widget"></div>
var host = document.querySelector(".widget");
var root = host.createShadowRoot();
root.innerHTML = "<h1>Estou dentro da div</h1>";
Encapsula style, marcação e
script
HTML	

Imports
t
importações carregar 	

documentos externos 	

em nossa página.
HTML Import
<link rel="import" href="beltra-tech.html">
Obrigado
TWITTER.COM/MTEUSORTIZ
GITHUB.COM/MATEUSORTIZ

More Related Content

Viewers also liked

Intro to polymer-Devfest Yaoundé 2013
Intro to polymer-Devfest Yaoundé 2013Intro to polymer-Devfest Yaoundé 2013
Intro to polymer-Devfest Yaoundé 2013
gdgyaounde
 
Iasi code camp 12 october 2013 shadow dom - mihai bîrsan
Iasi code camp 12 october 2013   shadow dom - mihai bîrsanIasi code camp 12 october 2013   shadow dom - mihai bîrsan
Iasi code camp 12 october 2013 shadow dom - mihai bîrsan
Codecamp Romania
 

Viewers also liked (16)

The status of living HTML (highlights)
The status of living HTML (highlights)The status of living HTML (highlights)
The status of living HTML (highlights)
 
Intro to polymer-Devfest Yaoundé 2013
Intro to polymer-Devfest Yaoundé 2013Intro to polymer-Devfest Yaoundé 2013
Intro to polymer-Devfest Yaoundé 2013
 
Getting Started with DOM
Getting Started with DOMGetting Started with DOM
Getting Started with DOM
 
Iasi code camp 12 october 2013 shadow dom - mihai bîrsan
Iasi code camp 12 october 2013   shadow dom - mihai bîrsanIasi code camp 12 october 2013   shadow dom - mihai bîrsan
Iasi code camp 12 october 2013 shadow dom - mihai bîrsan
 
Try Web Components
Try Web ComponentsTry Web Components
Try Web Components
 
AD201 - IBM Domino Application Development Today And Tomorrow
AD201 - IBM Domino Application Development Today And TomorrowAD201 - IBM Domino Application Development Today And Tomorrow
AD201 - IBM Domino Application Development Today And Tomorrow
 
Polymer and web component
Polymer and web componentPolymer and web component
Polymer and web component
 
Web Components and Modular CSS
Web Components and Modular CSSWeb Components and Modular CSS
Web Components and Modular CSS
 
CSS Best practice
CSS Best practiceCSS Best practice
CSS Best practice
 
The definitive guide_to_cloud_computing
The definitive guide_to_cloud_computingThe definitive guide_to_cloud_computing
The definitive guide_to_cloud_computing
 
WebComponents LT at AQ
WebComponents LT at AQWebComponents LT at AQ
WebComponents LT at AQ
 
An Exploration of Frameworks – and Why We Built Our Own
An Exploration of Frameworks – and Why We Built Our OwnAn Exploration of Frameworks – and Why We Built Our Own
An Exploration of Frameworks – and Why We Built Our Own
 
Web Components: back to the future
Web Components: back to the futureWeb Components: back to the future
Web Components: back to the future
 
A 20 minute introduction to AngularJS for XPage developers
A 20 minute introduction to AngularJS for XPage developersA 20 minute introduction to AngularJS for XPage developers
A 20 minute introduction to AngularJS for XPage developers
 
Web Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing CombinationWeb Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing Combination
 
Thinking about CSS Architecture
Thinking about CSS ArchitectureThinking about CSS Architecture
Thinking about CSS Architecture
 

Similar to O Mágico mundo de Web Components

Windows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows AzureWindows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows Azure
Vitor Ciaramella
 
Javascript truquesmagicos
Javascript truquesmagicosJavascript truquesmagicos
Javascript truquesmagicos
ponto hacker
 

Similar to O Mágico mundo de Web Components (20)

Componentes para a Web
Componentes para a WebComponentes para a Web
Componentes para a Web
 
Wicket 2008
Wicket 2008Wicket 2008
Wicket 2008
 
Windows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows AzureWindows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows Azure
 
Html5 ass
Html5 assHtml5 ass
Html5 ass
 
Evento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de FrontEvento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de Front
 
Html5 workshop
Html5 workshopHtml5 workshop
Html5 workshop
 
Google apps script - Parte 2
Google apps script - Parte 2Google apps script - Parte 2
Google apps script - Parte 2
 
Simplificando o full stack - desenvolvimento web na prática
Simplificando o full stack - desenvolvimento web na práticaSimplificando o full stack - desenvolvimento web na prática
Simplificando o full stack - desenvolvimento web na prática
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_
 
Widget
WidgetWidget
Widget
 
ReMobile - Nokia Web Runtime
ReMobile - Nokia Web RuntimeReMobile - Nokia Web Runtime
ReMobile - Nokia Web Runtime
 
Programação Web com jQuery
Programação Web com jQueryProgramação Web com jQuery
Programação Web com jQuery
 
Web components: mais simples e produtivo com polymer!
Web components: mais simples e produtivo com polymer!Web components: mais simples e produtivo com polymer!
Web components: mais simples e produtivo com polymer!
 
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
 
Javascript truquesmagicos
Javascript truquesmagicosJavascript truquesmagicos
Javascript truquesmagicos
 
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsDevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webapps
 
Programação Web com jQuery
Programação Web com jQueryProgramação Web com jQuery
Programação Web com jQuery
 
Bloco 5.3
Bloco 5.3Bloco 5.3
Bloco 5.3
 
Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017
 
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
 

Recently uploaded

Recently uploaded (6)

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

O Mágico mundo de Web Components