SlideShare uma empresa Scribd logo
<web
components>
um futuro
chamado
@zenorocha
@liferay @alloyui
Um futuro chamado Web Components
Um futuro chamado Web Components
Um futuro chamado Web Components
jqueryboilerplate.com
browserdiet.com
Um futuro chamado Web Components
os projetos
mais populares
voltados para
client-side
estão fadados
a morrer
vs
<canvas>
document.querySelector
vs
vs
<input type=”date”>
então quer dizer
que tudo vai virar
“nativo” um dia?
o que as
principais
empresas da
web estão
trabalhando hoje?
Um futuro chamado Web Components
getbootstrap.com
Um futuro chamado Web Components
facebook.github.io/react
Um futuro chamado Web Components
topcoat.io
Um futuro chamado Web Components
alloyui.com
Um futuro chamado Web Components
purecss.io
Um futuro chamado Web Components
Um futuro chamado Web Components
Um futuro chamado Web Components
como usar um
“componente” hoje?
1. Nunca crie! Use um plugin jQuery
2. Copie e cole o código de alguém
3. Torça pra que funcione
Web Components
<braziljs>
braziljs.github.io/braziljs-element
<video is=”camera”>
customelements.github.io/camera-element
Web Components
Custom
Elements
Import
Templates
Shadow DOM
Decorators*
Custom
Elements
<element name="braziljs" constructor="BrazilJS"
attributes="onde">
// implementação
</element>
<element>
<element name="camera" extends="video">
// implementação
</element>
<element>
zno.io/QxNJ
<brazil-js></brazil-js>
usando JS
var proto = Object.create(HTMLElement.prototype);
proto.createdCallback = function() {
	 this.textContent = 'BrazilJS!';
};
document.register('brazil-js', {
	 prototype: proto
});
lifecycle
•createdCallback
•enteredDocumentCallback
•leftDocumentCallback
•attributeChangedCallback
x-tags.org
polymer-project.org
<polymer-element name="braziljs" attributes="onde">
	<script>
	 	 Polymer('braziljs', {
	 	 	 onde: 'Porto Alegre',
	 	 	 created: function() {
	 	 	 	 // faça algo
	 	 	 }
	 	 });
	 </script>
</polymer-element>
como usar?
zno.io/QxlZ
Templates
Templates
são blocos
reutilizáveis
de código
server-side
mustache
handlebars
liquid
jinja
velocity
savant
client-side
mustache
handlebars
eco
ejs
jade
hogan
gambiarra #1
<div id="template" style="display: none">
<img src="logo.png" class="logo.png">
</div>
<script id="template" type="text/x-handlebars-template">
<img src="logo.png">
</script>
gambiarra #2
<template>
<template id="meuTemplate">
<img src="">
</template>
como criar?
// 1. Acessa o conteúdo do template
var t = document.querySelector('#meuTemplate').content;
// 2. Manipula elemento interno do template
t.querySelector('img').src = 'logo.png';
// 3. Clona e insere no DOM
document.body.appendChild(t.cloneNode(true));
como usar?
Shadow
DOM
Shadow DOM
esconde os
detalhes de
implementação
mas e o
<iframe>?
do que é feito
um <video>?
ou um password, textarea, date?
como usar?
<h1>Documento</h1>
<div id=”cuia”></div>
var cuia = document.querySelector('#cuia')
.createShadowRoot();
cuia.innerHTML = '<h1>Mate</h1>';
estilo, marcação e
script encapsulados
<h1>Documento</h1>
<div id=”cuia”></div>
var cuia = document.querySelector('#cuia')
.createShadowRoot();
cuia.innerHTML = '<h1>Mate</h1>' +
	 	 	 	 	 '<style>h1 { color: #f00; }</style>';
como ativar?
Import
Um futuro chamado Web Components
Um futuro chamado Web Components
Um futuro chamado Web Components
Um futuro chamado Web Components
como usar?
<link rel="import" href="braziljs.html">
Um futuro chamado Web Components
jonrimmer.github.io/are-we-componentized-yet
Flags
quero usar hoje,
onde eu encontro?
NPM? Bower?
@eduardolundgren
@bernarddeluna
customelements.io
<twitter>
customelements.github.io/twitter-element
<gmaps>
customelements.github.io/gmaps-element
<video is=”camera”>
customelements.github.io/camera-element
<video is=”tracking”>
eduardolundgren.github.io/tracking-element
ou seja...
encapsulamento e
reaproveitamento de
código de verdade
A melhor forma de
prever o futuro é
inventando ele
e..... camisetas!
Um futuro chamado Web Components

Mais conteúdo relacionado

PDF
O Poderoso AngularJS
PDF
Como Perder Peso (no browser)
PDF
Tracking.js
PDF
AngularJS Abraçando o MVC Client-Side
PPT
Desenvolvimento Do jQuery Light Box Plugin ao vivo
PPTX
PPS
Descomplicando o JQuery - Introdução ao Framework
PDF
Otimizacao Front-End para WordPress - OlhoSEO 2013
O Poderoso AngularJS
Como Perder Peso (no browser)
Tracking.js
AngularJS Abraçando o MVC Client-Side
Desenvolvimento Do jQuery Light Box Plugin ao vivo
Descomplicando o JQuery - Introdução ao Framework
Otimizacao Front-End para WordPress - OlhoSEO 2013

Mais procurados (20)

PPTX
Introdução ao AngularJS
PDF
Directive com AngularJS - Datepicker
PDF
Curso AngularJS - Parte 1
PDF
AngularJS com NODE.JS e Socket.IO
PPTX
VueJS - Uma alternativa elegante
PDF
Android Libs - AndroidDevConf
PDF
O Mágico mundo de Web Components
PDF
Hacking Twitter API [ Giran Siege ]
PDF
Curso AngularJS - Parte 2
PDF
React - Introdução
PDF
Melhores Práticas Web Components
PDF
Material Design simples e rapido com AngularJS
PDF
React - Biblioteca Javascript para criação de UI
PPTX
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
PDF
Desenvolvimento Front end (AngularJS e Bootstrap)
PPTX
A evolução do AngularJS
PPTX
JavaScript - #Aula03 parte 04 - Bichinho Virtual - Evento Onclick, Prompt, fu...
PDF
Criação de Ambientes de Realidade Virtual usando A-Frame
PPTX
Construindo Diretivas com AngularJS
ODP
Destruindo com AJAX: evitando o apocalipse - riojs
Introdução ao AngularJS
Directive com AngularJS - Datepicker
Curso AngularJS - Parte 1
AngularJS com NODE.JS e Socket.IO
VueJS - Uma alternativa elegante
Android Libs - AndroidDevConf
O Mágico mundo de Web Components
Hacking Twitter API [ Giran Siege ]
Curso AngularJS - Parte 2
React - Introdução
Melhores Práticas Web Components
Material Design simples e rapido com AngularJS
React - Biblioteca Javascript para criação de UI
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Desenvolvimento Front end (AngularJS e Bootstrap)
A evolução do AngularJS
JavaScript - #Aula03 parte 04 - Bichinho Virtual - Evento Onclick, Prompt, fu...
Criação de Ambientes de Realidade Virtual usando A-Frame
Construindo Diretivas com AngularJS
Destruindo com AJAX: evitando o apocalipse - riojs
Anúncio

Destaque (20)

PDF
Desenvolvimento Front-end Orientado a Componentes
PPTX
Light Talk sobre JavaScript Funcional
PDF
SEO para font-end
PDF
Zeno rocha - HTML5 APIs para Mobile
PPTX
Introdução ao NodeJS
PDF
Automatize suas tarefas: conheça o GulpJS.
KEY
Uma visão rápida sobre Nodejs
PPTX
Sigle Page Application - A nova Web
PPTX
NodeJS - Tutorial de forma simples e pratica.
PPTX
Programacao funcional
PDF
O poder do Docker (7 Masters)
PDF
Iniciando com Yeoman, Grunt e Bower
PDF
Como empreender em... você!
PDF
Curso SEO Avancado - Digitalks
PDF
Nodejs - A performance que eu sempre quis ter
PDF
O futuro dos WebApps com AngularJS 2.0
PDF
Oficina docker
PDF
Os mitos do desenvolvimento front-end
PDF
PDF
Future of Web Development
Desenvolvimento Front-end Orientado a Componentes
Light Talk sobre JavaScript Funcional
SEO para font-end
Zeno rocha - HTML5 APIs para Mobile
Introdução ao NodeJS
Automatize suas tarefas: conheça o GulpJS.
Uma visão rápida sobre Nodejs
Sigle Page Application - A nova Web
NodeJS - Tutorial de forma simples e pratica.
Programacao funcional
O poder do Docker (7 Masters)
Iniciando com Yeoman, Grunt e Bower
Como empreender em... você!
Curso SEO Avancado - Digitalks
Nodejs - A performance que eu sempre quis ter
O futuro dos WebApps com AngularJS 2.0
Oficina docker
Os mitos do desenvolvimento front-end
Future of Web Development
Anúncio

Semelhante a Um futuro chamado Web Components (20)

PPTX
Web components
PPTX
Web components
PDF
Componentes para a Web
PDF
Desenvolvendo aplicacoes mobile_com_html_css_
ODP
Otimize sua web page e web components
PDF
JQuery Mobile
PDF
HTML 5 e Open Web Platform
PDF
Alta Performance em Aplicações Web
PDF
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
PDF
Road Show TI Senac São Paulo - Jaú
PDF
HTML5 - A nova fronteira no desenvolvimento de aplicações WEB
PDF
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
PDF
Curso: Web Design Responsivo
PDF
HTML5- Road Show TI - Senac Jaboticabal
PDF
PPTX
Surpreenda-se com o Silverlight 3
PDF
Phonegap
PPT
jQuery Mobile - Aplicações móveis com Javascript
PDF
O Papel do desenvolvedor Front End
Web components
Web components
Componentes para a Web
Desenvolvendo aplicacoes mobile_com_html_css_
Otimize sua web page e web components
JQuery Mobile
HTML 5 e Open Web Platform
Alta Performance em Aplicações Web
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Road Show TI Senac São Paulo - Jaú
HTML5 - A nova fronteira no desenvolvimento de aplicações WEB
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Curso: Web Design Responsivo
HTML5- Road Show TI - Senac Jaboticabal
Surpreenda-se com o Silverlight 3
Phonegap
jQuery Mobile - Aplicações móveis com Javascript
O Papel do desenvolvedor Front End

Mais de Zeno Rocha (11)

PDF
Web APIs you (probably) didn't know existed
PDF
Liferay + Wearables
PDF
Liferay UI (R)evolution
PDF
Getting started with YUI3 and AlloyUI
PDF
How to create high scalable JavaScript apps for Java Portals
PDF
Augmented Reality in JavaScript
KEY
Super Trunfo - Case de Dados Abertos
PDF
Desbravando o HTML5 Boilerplate
PDF
Construindo Projetos Robustos em HTML5
PPT
HTML 5
PPTX
Wordpress
Web APIs you (probably) didn't know existed
Liferay + Wearables
Liferay UI (R)evolution
Getting started with YUI3 and AlloyUI
How to create high scalable JavaScript apps for Java Portals
Augmented Reality in JavaScript
Super Trunfo - Case de Dados Abertos
Desbravando o HTML5 Boilerplate
Construindo Projetos Robustos em HTML5
HTML 5
Wordpress

Último (11)

PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Arquitetura de computadores - Memórias Secundárias
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
Manejo integrado de pragas na cultura do algodão
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Utilizando code blockes por andre backes
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Design - Introdução a Gestalt e teoria das formas
PPTX
Tipos de servidor em redes de computador.pptx
Viasol Energia Solar -Soluções para geração e economia de energia
Arquitetura de computadores - Memórias Secundárias
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Manejo integrado de pragas na cultura do algodão
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Eng. Software - pontos essenciais para o início
Utilizando code blockes por andre backes
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Design - Introdução a Gestalt e teoria das formas
Tipos de servidor em redes de computador.pptx

Um futuro chamado Web Components