SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Melhores Práticas 
! 
Web Components 
@mteusortiz
mateusortiz 
@mteusortiz
Web Components ?? 
Criar Tags 
Estender Tags
Hoje vamos falar de 
Melhores Práticas
# Namespacing 
O Custom Elements 
deve ter um traço em seu nome
goo.gl/S3t eiDw
# exemplo 
<mark-down></mark-down> 
goo.gl/t 
Cjkqkq
# Atributos de dados 
Definir um valor default 
para o atributo
# exemplo 
Use atributos booleanos para valores booleanos 
<my-tabs selected></my-tabs> 
em vez de 
<my-tabs selected="true"></my-tabs>
# Incluir Dependências 
Inclua todas as dependências necessárias do componente. 
defina cabeçalhos de cache apropriados, estas só serão obtidos e 
carregados uma vez
t 
# exemplo 
imports.html 
<link rel="import" href="../src/my-tabs.html"> 
<link rel="import" href="../src/my-buttons.html"> 
concateno em único arquivo 
index.html 
<link rel="import" href="../src/imports.html">
# Documente seu componente 
Documente seu componente para que 
outros saibam como usá-lo.
Os atributos podem ser descritos de forma concisa com o exemplo de 
marcação. 
Se um componente é projetado para ser aninhada dentro de outra, 
mostre-a que está sendo usado nesse contexto. 
Liste os seus métodos de JavaScript e propriedades. 
Liste seus eventos.
# Não coloque Tudo no 
Shadow DOM 
Shadow DOM permite você esconder os 
detalhes de implementação fora da vista.
No entanto, isso não é uma desculpa para 
poluir seu Shadow Dom, com mais 
elementos ainda vai levar a uma pior 
performance. Implementação vai no 
shadow; material semântico não.
# Não crie mais custom 
elements do que precise 
Se você tem dois custom elements 
semelhantes e a única diferença é a cor. não 
crie outro apenas estenda.
não se esqueça de... 
Acessibilidade 
Performance 
Responsive 
Testes
t 
Obrigado! 
twitter.com/mteusortiz 
github.com/mateusortiz

Mais conteúdo relacionado

Mais procurados

AngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-SideAngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-SideSergio Azevedo
 
Directive com AngularJS - Datepicker
Directive com AngularJS - DatepickerDirective com AngularJS - Datepicker
Directive com AngularJS - DatepickerDouglas Lira
 
O Mágico mundo de Web Components
O Mágico mundo de Web ComponentsO Mágico mundo de Web Components
O Mágico mundo de Web ComponentsMateus Ortiz
 
LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.jsGiovanni Bassi
 
AngularJS com NODE.JS e Socket.IO
AngularJS com NODE.JS e Socket.IOAngularJS com NODE.JS e Socket.IO
AngularJS com NODE.JS e Socket.IODouglas Lira
 
Jquery - Dicas e Truques
Jquery - Dicas e TruquesJquery - Dicas e Truques
Jquery - Dicas e TruquesLambda 3
 

Mais procurados (8)

AngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-SideAngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-Side
 
Directive com AngularJS - Datepicker
Directive com AngularJS - DatepickerDirective com AngularJS - Datepicker
Directive com AngularJS - Datepicker
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Tracking.js
Tracking.jsTracking.js
Tracking.js
 
O Mágico mundo de Web Components
O Mágico mundo de Web ComponentsO Mágico mundo de Web Components
O Mágico mundo de Web Components
 
LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.js
 
AngularJS com NODE.JS e Socket.IO
AngularJS com NODE.JS e Socket.IOAngularJS com NODE.JS e Socket.IO
AngularJS com NODE.JS e Socket.IO
 
Jquery - Dicas e Truques
Jquery - Dicas e TruquesJquery - Dicas e Truques
Jquery - Dicas e Truques
 

Semelhante a Melhores práticas para Web Components

Mini Curso - jQuery - FMU
Mini Curso - jQuery - FMUMini Curso - jQuery - FMU
Mini Curso - jQuery - FMUThiago Ericson
 
Desenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engineDesenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app enginepugpe
 
Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpRodrigo Aramburu
 
Academia Verão 2011 - HTML
Academia Verão 2011 - HTMLAcademia Verão 2011 - HTML
Academia Verão 2011 - HTMLNuno Simaria
 
Academia verao 2011 - HTML + CSS
Academia verao 2011 - HTML + CSSAcademia verao 2011 - HTML + CSS
Academia verao 2011 - HTML + CSSNuno Simaria
 
Core Web Vitals - Técnicas de Performance Web pra Javascript
Core Web Vitals - Técnicas de Performance Web pra Javascript Core Web Vitals - Técnicas de Performance Web pra Javascript
Core Web Vitals - Técnicas de Performance Web pra Javascript CamiloMicheletto1
 
HTML - HyperText Markup Language - 2
HTML - HyperText Markup Language - 2HTML - HyperText Markup Language - 2
HTML - HyperText Markup Language - 2Israel Messias
 
Otimize sua web page e web components
Otimize sua web page e web componentsOtimize sua web page e web components
Otimize sua web page e web componentsAndré Betiolo
 
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 FrontMichel Ribeiro
 
Construindo temas para Plone com Diazo
Construindo temas para Plone com DiazoConstruindo temas para Plone com Diazo
Construindo temas para Plone com DiazoSimples Consultoria
 
O que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seoO que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seointrofini
 

Semelhante a Melhores práticas para Web Components (20)

Html5 workshop
Html5 workshopHtml5 workshop
Html5 workshop
 
Componentes para a Web
Componentes para a WebComponentes para a Web
Componentes para a Web
 
Java script aula 10 - angularjs
Java script   aula 10 - angularjsJava script   aula 10 - angularjs
Java script aula 10 - angularjs
 
Django Módulo Básico Parte II
Django Módulo Básico Parte IIDjango Módulo Básico Parte II
Django Módulo Básico Parte II
 
Mini Curso - jQuery - FMU
Mini Curso - jQuery - FMUMini Curso - jQuery - FMU
Mini Curso - jQuery - FMU
 
Desenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engineDesenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engine
 
Jquery Mobile
Jquery MobileJquery Mobile
Jquery Mobile
 
Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephp
 
Academia Verão 2011 - HTML
Academia Verão 2011 - HTMLAcademia Verão 2011 - HTML
Academia Verão 2011 - HTML
 
Academia verao 2011 - HTML + CSS
Academia verao 2011 - HTML + CSSAcademia verao 2011 - HTML + CSS
Academia verao 2011 - HTML + CSS
 
Criando Temas com Diazo
Criando Temas com DiazoCriando Temas com Diazo
Criando Temas com Diazo
 
Core Web Vitals - Técnicas de Performance Web pra Javascript
Core Web Vitals - Técnicas de Performance Web pra Javascript Core Web Vitals - Técnicas de Performance Web pra Javascript
Core Web Vitals - Técnicas de Performance Web pra Javascript
 
Java script aula 09 - JQuery
Java script   aula 09 - JQueryJava script   aula 09 - JQuery
Java script aula 09 - JQuery
 
04 02 novos elementos
04 02 novos elementos04 02 novos elementos
04 02 novos elementos
 
HTML - HyperText Markup Language - 2
HTML - HyperText Markup Language - 2HTML - HyperText Markup Language - 2
HTML - HyperText Markup Language - 2
 
Otimize sua web page e web components
Otimize sua web page e web componentsOtimize sua web page e web components
Otimize sua web page e web components
 
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
 
Construindo temas para Plone com Diazo
Construindo temas para Plone com DiazoConstruindo temas para Plone com Diazo
Construindo temas para Plone com Diazo
 
Wicket 2008
Wicket 2008Wicket 2008
Wicket 2008
 
O que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seoO que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seo
 

Melhores práticas para Web Components

  • 1. Melhores Práticas ! Web Components @mteusortiz
  • 3.
  • 4.
  • 5. Web Components ?? Criar Tags Estender Tags
  • 6. Hoje vamos falar de Melhores Práticas
  • 7.
  • 8. # Namespacing O Custom Elements deve ter um traço em seu nome
  • 11. # Atributos de dados Definir um valor default para o atributo
  • 12. # exemplo Use atributos booleanos para valores booleanos <my-tabs selected></my-tabs> em vez de <my-tabs selected="true"></my-tabs>
  • 13. # Incluir Dependências Inclua todas as dependências necessárias do componente. defina cabeçalhos de cache apropriados, estas só serão obtidos e carregados uma vez
  • 14. t # exemplo imports.html <link rel="import" href="../src/my-tabs.html"> <link rel="import" href="../src/my-buttons.html"> concateno em único arquivo index.html <link rel="import" href="../src/imports.html">
  • 15. # Documente seu componente Documente seu componente para que outros saibam como usá-lo.
  • 16. Os atributos podem ser descritos de forma concisa com o exemplo de marcação. Se um componente é projetado para ser aninhada dentro de outra, mostre-a que está sendo usado nesse contexto. Liste os seus métodos de JavaScript e propriedades. Liste seus eventos.
  • 17. # Não coloque Tudo no Shadow DOM Shadow DOM permite você esconder os detalhes de implementação fora da vista.
  • 18. No entanto, isso não é uma desculpa para poluir seu Shadow Dom, com mais elementos ainda vai levar a uma pior performance. Implementação vai no shadow; material semântico não.
  • 19. # Não crie mais custom elements do que precise Se você tem dois custom elements semelhantes e a única diferença é a cor. não crie outro apenas estenda.
  • 20. não se esqueça de... Acessibilidade Performance Responsive Testes
  • 21. t Obrigado! twitter.com/mteusortiz github.com/mateusortiz