Slide 1

Slide 1 text

pen4education Web Components com Vanilla.js Alefe Souza Trilha JavaScript @alefesouza https://as.dev

Slide 2

Slide 2 text

pen4education Alefe Souza @alefesouza https://as.dev Full Stack Developer @alefesouza Apaixonado por JavaScript desde os 13 anos, instrutor de desenvolvimento de software, formado em análise e desenvolvimento de sistemas, Microsoft Specialist em tecnologias web.

Slide 3

Slide 3 text

pen4education Agenda • O que é Vanilla.js? • O conceito de componente • Vantagens • Live Code • Compiladores • Suporte @alefesouza https://as.dev

Slide 4

Slide 4 text

pen4education Vanilla.js @alefesouza https://as.dev http://vanilla-js.com/ Manipulação de DOM AJAX Animações Bibliotecas de matemática. Biblioteca de manipulação de strings e arrays. Etc.

Slide 5

Slide 5 text

pen4education Vanilla.js Com tantas bibliotecas e frameworks JavaScript sendo lançadas a cada dia, acabamos não acostumados a utilizar o JavaScript em sua forma mais pura, Vanilla.js nada mais é do que programar em JavaScript sem bibliotecas ou frameworks. @alefesouza https://as.dev

Slide 6

Slide 6 text

pen4education Componentes Componentes te ajudam a ter um código mais organizado e reutilizável, também são uma das principais funcionalidades de frameworks modernos. @alefesouza https://as.dev

Slide 7

Slide 7 text

pen4education Web Components É uma especificação oficial do W3C que é composta pela união das APIs de Custom Elements, ShadowDOM e HTML Templates. @alefesouza https://as.dev

Slide 8

Slide 8 text

pen4education Custom Elements Você consegue ter todo o HTML, CSS e funcionalidade em apenas uma tag HTML customizada utilizando a API de Custom Elements. @alefesouza https://as.dev

Slide 9

Slide 9 text

pen4education Life Cycle Events Custom Elements também possuem métodos de life cycle quase iguais aos dos frameworks: connectedCallback - Executado quando o componente é inicializado. disconnectedCallback - Executado quando o componente é removido. attributeChangedCallback - Executado quando um atributo é alterado. @alefesouza

Slide 10

Slide 10 text

pen4education ShadowDOM ShadowDOM é uma forma de ter uma conjunto de HTML, CSS e JS separado do DOM principal. @alefesouza https://as.dev

Slide 11

Slide 11 text

pen4education Vantagens A principal vantagem de utilizar Web Components é poder escrever seus componentes independente de framework, pois são uma função nativa do navegador. Se seu projeto é apenas para navegadores modernos, você também não precisa se preocupar com sistemas de build. @alefesouza https://as.dev

Slide 12

Slide 12 text

pen4education Live code! https://bit.ly/vanilla-wc @alefesouza https://as.dev

Slide 13

Slide 13 text

pen4education Compiladores O Vanilla.js é muitas vezes substituído por bibliotecas e framework por ser complicado para alguns e às vezes até verboso. @alefesouza https://as.dev

Slide 14

Slide 14 text

pen4education Stencil Ferramenta desenvolvida pelo time do Ionic para facilitar a escrita de custom elements. Utiliza uma mistura de TypeScript do Angular com JSX do React. @alefesouza https://stenciljs.com/ https://as.dev

Slide 15

Slide 15 text

pen4education Stencil @alefesouza https://as.dev

Slide 16

Slide 16 text

pen4education Angular Elements Angular Elements é um pacote oficial da equipe do Angular que permite empacotar componentes do mesmo em Web Components, dessa forma você pode escrever componentes para qualquer framework utilizando seus conhecimentos em Angular. @alefesouza https://angular.io/ guide/elements https://as.dev

Slide 17

Slide 17 text

pen4education Vue CLI 3 O Vue CLI 3 permite a você “buildar” componentes .vue como Web Components, assim você também pode escrever componentes para qualquer framework utilizando a sintaxe do Vue.js. @alefesouza https://cli.vuejs.org https://as.dev

Slide 18

Slide 18 text

pen4education Suporte @alefesouza https://as.dev

Slide 19

Slide 19 text

pen4education webcomponents.org Esse site funciona como um “armazém” de Web Components, no qual você pode encontrar e até publicar os seus. @alefesouza https://as.dev

Slide 20

Slide 20 text

pen4education @alefesouza https://as.dev Obrigado! @alefesouza https://bit.ly/vanilla-wc

Slide 21

Slide 21 text

No content