SlideShare uma empresa Scribd logo
1 de 14
Vanilla JS
“Pode ser que você não precise de jQuery”
Jackson Veroneze
Software Developer
jackson@jacksonveroneze.com
https://jacksonveroneze.com
https://br.linkedin.com/in/jacksonveroneze
Autores
Mario Mendonça
Software Developer
mario.mendonca@gmail.com
https://br.linkedin.com/in/mario-mendonca
O que é Vanilla JS
É JavaScript puro.
A forma apresentada, para parecer como um framework, talvez seja proposital
como forma de piada já que há uma crítica sobre a proliferação de frameworks que
em geral pouco agrega de fato.
Vantagens
O benefício mais objetivo de usar JavaScript puro ou Vanilla JS é o melhor
desempenho. Outro benefício é uma melhor compreensão da linguagem que você
ganha ao escrever códigos em Vanilla JS.
Desvantagens
A desvantagem de usar Vanilla JS é que é mais fácil cometer erros ou perder
alguma coisa, é menos amigável (que jQuery), e pode exigir desenvolver mais
código para atingir objetivos que levaria menos tempo com jQuery.
Como escolher
JQuery é uma boa escolha nas seguintes situações:
Para pequenos projetos, onde a performance não é um problema
Projetos simples, com prazo apertado
Grandes projetos que usam uma biblioteca ou estrutura que tem jQuery como dependência
Onde não usar jQuery incluem:
Adquirir conhecimento intermediário e avançado em JavaScript
Aplicações Web complexas
Desenvolver sua própria biblioteca
Aplicações do lado do servidor com Node.js
Events
// jQuery
$(document).ready(function() {
// code
})
// jQuery
$('a').click(function() {
// code…
})
// Vanilla
document.addEventListener('DOMContentLoaded',
function() {
// code
})
// Vanilla
[].forEach.call(document.querySelectorAll('a'),
function(el) {
el.addEventListener('click', function() {
// code…
})
})
Attributes
// jQuery
$('img').filter(':first').attr('alt', 'My image')
// Vanilla
document.querySelector('img').setAttribute('alt', 'My
image')
Classes
// jQuery
newDiv.addClass('foo')
// jQuery
newDiv.toggleClass('foo')
// Vanilla
newDiv.classList.add('foo')
// Vanilla
newDiv.classList.toggle('foo')
Selectors
// jQuery
var divs = $('div')
// jQuery
var newDiv = $('<div/>')
// Vanilla
var divs = document.querySelectorAll('div')
// Vanilla
var newDiv = document.createElement('div')
Ajax
// jQuery
$.get('//example.com', function (data) {
// code
})
// Vanilla
var httpRequest = new XMLHttpRequest()
httpRequest.onreadystatechange = function (data) {
// code
}
httpRequest.open('GET', url)
httpRequest.send()
Comparação de Velocidade
Comparação de Velocidade
Referências
http://pt.stackoverflow.com/questions/46983/o-que-%C3%A9-o-vanilla-js
https://gist.github.com/liamcurry/2597326
http://vanilla-js.com/
http://youmightnotneedjquery.com/

Mais conteúdo relacionado

Mais procurados

Usando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoUsando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoAlexandre Andrade
 
Como criar módulos para magento 2
Como criar módulos para magento 2Como criar módulos para magento 2
Como criar módulos para magento 2Rafael Corrêa Gomes
 
881778 exercicio1
881778 exercicio1881778 exercicio1
881778 exercicio1Caio César
 
Curso web faveni aula 19 - Introdução a CMS
Curso web faveni aula 19 - Introdução a CMSCurso web faveni aula 19 - Introdução a CMS
Curso web faveni aula 19 - Introdução a CMSLuis Marcelo Zanlucki
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Rodrigo Kono
 
CMS e Midias Sociais
CMS e Midias SociaisCMS e Midias Sociais
CMS e Midias SociaisEdney Souza
 
Wordpress Introdução a Plugins
Wordpress Introdução a PluginsWordpress Introdução a Plugins
Wordpress Introdução a PluginsWesley R. Bezerra
 
Visão Geral do CMS e Framework Joomla - Business IT South America
Visão Geral do CMS e Framework Joomla - Business IT South AmericaVisão Geral do CMS e Framework Joomla - Business IT South America
Visão Geral do CMS e Framework Joomla - Business IT South AmericaEmerson Rocha Luiz
 
Visual Regression com BackstopJS
Visual Regression com BackstopJSVisual Regression com BackstopJS
Visual Regression com BackstopJSAndré Mendes
 
WordPress como CMS
WordPress como CMSWordPress como CMS
WordPress como CMSleogermani
 
JS Experience 2017 - Painel – Angular+React+Vue: Arquitetura, Performance e U...
JS Experience 2017 - Painel – Angular+React+Vue: Arquitetura, Performance e U...JS Experience 2017 - Painel – Angular+React+Vue: Arquitetura, Performance e U...
JS Experience 2017 - Painel – Angular+React+Vue: Arquitetura, Performance e U...iMasters
 
Teste com usuários e teste de comunicabilidade no Livemocha
Teste com usuários e teste de comunicabilidade no LivemochaTeste com usuários e teste de comunicabilidade no Livemocha
Teste com usuários e teste de comunicabilidade no LivemochaTiago Rigoletto
 
Um overview sobre temas em wp
Um overview sobre temas em wpUm overview sobre temas em wp
Um overview sobre temas em wpInCuca
 

Mais procurados (19)

Polymer Starter Kit
Polymer Starter KitPolymer Starter Kit
Polymer Starter Kit
 
Usando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoUsando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimento
 
Acessibilidade 2015
Acessibilidade 2015 Acessibilidade 2015
Acessibilidade 2015
 
Como Criar Um Blog
Como Criar Um BlogComo Criar Um Blog
Como Criar Um Blog
 
Como criar módulos para magento 2
Como criar módulos para magento 2Como criar módulos para magento 2
Como criar módulos para magento 2
 
881778 exercicio1
881778 exercicio1881778 exercicio1
881778 exercicio1
 
Curso web faveni aula 19 - Introdução a CMS
Curso web faveni aula 19 - Introdução a CMSCurso web faveni aula 19 - Introdução a CMS
Curso web faveni aula 19 - Introdução a CMS
 
Novidades do Magento 2
Novidades do Magento 2Novidades do Magento 2
Novidades do Magento 2
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
 
CMS e Midias Sociais
CMS e Midias SociaisCMS e Midias Sociais
CMS e Midias Sociais
 
Jheat
JheatJheat
Jheat
 
Wordpress Introdução a Plugins
Wordpress Introdução a PluginsWordpress Introdução a Plugins
Wordpress Introdução a Plugins
 
Visão Geral do CMS e Framework Joomla - Business IT South America
Visão Geral do CMS e Framework Joomla - Business IT South AmericaVisão Geral do CMS e Framework Joomla - Business IT South America
Visão Geral do CMS e Framework Joomla - Business IT South America
 
Curso web faveni aula 27
Curso web faveni aula 27Curso web faveni aula 27
Curso web faveni aula 27
 
Visual Regression com BackstopJS
Visual Regression com BackstopJSVisual Regression com BackstopJS
Visual Regression com BackstopJS
 
WordPress como CMS
WordPress como CMSWordPress como CMS
WordPress como CMS
 
JS Experience 2017 - Painel – Angular+React+Vue: Arquitetura, Performance e U...
JS Experience 2017 - Painel – Angular+React+Vue: Arquitetura, Performance e U...JS Experience 2017 - Painel – Angular+React+Vue: Arquitetura, Performance e U...
JS Experience 2017 - Painel – Angular+React+Vue: Arquitetura, Performance e U...
 
Teste com usuários e teste de comunicabilidade no Livemocha
Teste com usuários e teste de comunicabilidade no LivemochaTeste com usuários e teste de comunicabilidade no Livemocha
Teste com usuários e teste de comunicabilidade no Livemocha
 
Um overview sobre temas em wp
Um overview sobre temas em wpUm overview sobre temas em wp
Um overview sobre temas em wp
 

Destaque

Increasing Third Party margins on Frames with VSP
Increasing Third Party margins on Frames with VSPIncreasing Third Party margins on Frames with VSP
Increasing Third Party margins on Frames with VSPMark Clark ABOC
 
12 Reasons to use YouTube in schools and organizations.
12 Reasons to use YouTube in schools and organizations.12 Reasons to use YouTube in schools and organizations.
12 Reasons to use YouTube in schools and organizations.EduTechNia
 
Republic act no.7836
Republic act no.7836Republic act no.7836
Republic act no.7836Ben Parish
 
Magija Virdžinije Satir Moj put ka Samoliderstvu - Ljiljana Rsumovic
 Magija Virdžinije SatirMoj put ka Samoliderstvu - Ljiljana Rsumovic Magija Virdžinije SatirMoj put ka Samoliderstvu - Ljiljana Rsumovic
Magija Virdžinije Satir Moj put ka Samoliderstvu - Ljiljana RsumovicNLP Centar Beograd
 
Quickstrat bootstrap
Quickstrat bootstrapQuickstrat bootstrap
Quickstrat bootstrapDeni Ywn
 
Pengujian lengkung (bend test)
Pengujian lengkung (bend test)Pengujian lengkung (bend test)
Pengujian lengkung (bend test)Mukhamad Suwardo
 
Tus aplicaciones en pantalla grande con Xbox One
Tus aplicaciones en pantalla grande con Xbox One Tus aplicaciones en pantalla grande con Xbox One
Tus aplicaciones en pantalla grande con Xbox One Javier Suárez Ruiz
 
Why Should I Trust on FIWARE?
Why Should I Trust on FIWARE?Why Should I Trust on FIWARE?
Why Should I Trust on FIWARE?FIWARE
 
思考技術(2)---隱而未見的顯而易見
思考技術(2)---隱而未見的顯而易見思考技術(2)---隱而未見的顯而易見
思考技術(2)---隱而未見的顯而易見Shao-Yen Hung
 
Visionary Leadership
Visionary LeadershipVisionary Leadership
Visionary LeadershipAlexa Abidin
 

Destaque (14)

Increasing Third Party margins on Frames with VSP
Increasing Third Party margins on Frames with VSPIncreasing Third Party margins on Frames with VSP
Increasing Third Party margins on Frames with VSP
 
Colores.odt
Colores.odtColores.odt
Colores.odt
 
The Golden Slipper
The Golden SlipperThe Golden Slipper
The Golden Slipper
 
12 Reasons to use YouTube in schools and organizations.
12 Reasons to use YouTube in schools and organizations.12 Reasons to use YouTube in schools and organizations.
12 Reasons to use YouTube in schools and organizations.
 
Presentation skills 2016
Presentation skills 2016Presentation skills 2016
Presentation skills 2016
 
Republic act no.7836
Republic act no.7836Republic act no.7836
Republic act no.7836
 
Magija Virdžinije Satir Moj put ka Samoliderstvu - Ljiljana Rsumovic
 Magija Virdžinije SatirMoj put ka Samoliderstvu - Ljiljana Rsumovic Magija Virdžinije SatirMoj put ka Samoliderstvu - Ljiljana Rsumovic
Magija Virdžinije Satir Moj put ka Samoliderstvu - Ljiljana Rsumovic
 
Quickstrat bootstrap
Quickstrat bootstrapQuickstrat bootstrap
Quickstrat bootstrap
 
Pengujian lengkung (bend test)
Pengujian lengkung (bend test)Pengujian lengkung (bend test)
Pengujian lengkung (bend test)
 
Tus aplicaciones en pantalla grande con Xbox One
Tus aplicaciones en pantalla grande con Xbox One Tus aplicaciones en pantalla grande con Xbox One
Tus aplicaciones en pantalla grande con Xbox One
 
Xamarin for Everyone
Xamarin for EveryoneXamarin for Everyone
Xamarin for Everyone
 
Why Should I Trust on FIWARE?
Why Should I Trust on FIWARE?Why Should I Trust on FIWARE?
Why Should I Trust on FIWARE?
 
思考技術(2)---隱而未見的顯而易見
思考技術(2)---隱而未見的顯而易見思考技術(2)---隱而未見的顯而易見
思考技術(2)---隱而未見的顯而易見
 
Visionary Leadership
Visionary LeadershipVisionary Leadership
Visionary Leadership
 

Semelhante a Vanilla JS

Introdução JQuery
Introdução JQueryIntrodução JQuery
Introdução JQueryinfo_cimol
 
genesis - Acelerando o desenvolvimento de aplicações desktop
genesis - Acelerando o desenvolvimento de aplicações desktopgenesis - Acelerando o desenvolvimento de aplicações desktop
genesis - Acelerando o desenvolvimento de aplicações desktopMichel Graciano
 
Criação de sites Joomla com CCKs e frameworks de template - Joomla Day Ribeir...
Criação de sites Joomla com CCKs e frameworks de template - Joomla Day Ribeir...Criação de sites Joomla com CCKs e frameworks de template - Joomla Day Ribeir...
Criação de sites Joomla com CCKs e frameworks de template - Joomla Day Ribeir...jCursos
 
JavaCE Conference 2012: ExtJS 4 + VRaptor
JavaCE Conference 2012: ExtJS 4 + VRaptorJavaCE Conference 2012: ExtJS 4 + VRaptor
JavaCE Conference 2012: ExtJS 4 + VRaptorLoiane Groner
 
Javascript levado a sério
Javascript levado a sérioJavascript levado a sério
Javascript levado a sériosaspi2
 
Javascript levado a serio
Javascript levado a serioJavascript levado a serio
Javascript levado a serioJaydson Gomes
 
FEMUG MGA #6 - Abandonando o jQuery
FEMUG MGA #6  - Abandonando o jQueryFEMUG MGA #6  - Abandonando o jQuery
FEMUG MGA #6 - Abandonando o jQueryJulio Vedovatto
 
Ass Restaurante do Ze
Ass Restaurante do ZeAss Restaurante do Ze
Ass Restaurante do ZePablo Reis
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCguest489a65e
 
Nos Batidores do FLISOL2010 Salvador com JEE6
Nos Batidores do FLISOL2010 Salvador com JEE6Nos Batidores do FLISOL2010 Salvador com JEE6
Nos Batidores do FLISOL2010 Salvador com JEE6Otávio Santana
 
Capitulo 3 Livro Nielsen
Capitulo 3 Livro NielsenCapitulo 3 Livro Nielsen
Capitulo 3 Livro NielsenLuiz Agner
 
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )Getúlio Strapazzon
 
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)Giovanni Bassi
 
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...Felipe Nascimento
 
5 frameworks para desenvolvimento de apps em html5
5 frameworks para desenvolvimento de apps em html55 frameworks para desenvolvimento de apps em html5
5 frameworks para desenvolvimento de apps em html5daliarafaela
 

Semelhante a Vanilla JS (20)

Introdução JQuery
Introdução JQueryIntrodução JQuery
Introdução JQuery
 
genesis - Acelerando o desenvolvimento de aplicações desktop
genesis - Acelerando o desenvolvimento de aplicações desktopgenesis - Acelerando o desenvolvimento de aplicações desktop
genesis - Acelerando o desenvolvimento de aplicações desktop
 
Criação de sites Joomla com CCKs e frameworks de template - Joomla Day Ribeir...
Criação de sites Joomla com CCKs e frameworks de template - Joomla Day Ribeir...Criação de sites Joomla com CCKs e frameworks de template - Joomla Day Ribeir...
Criação de sites Joomla com CCKs e frameworks de template - Joomla Day Ribeir...
 
JavaCE Conference 2012: ExtJS 4 + VRaptor
JavaCE Conference 2012: ExtJS 4 + VRaptorJavaCE Conference 2012: ExtJS 4 + VRaptor
JavaCE Conference 2012: ExtJS 4 + VRaptor
 
Apresentação JQuery
Apresentação JQueryApresentação JQuery
Apresentação JQuery
 
Javascript levado a sério
Javascript levado a sérioJavascript levado a sério
Javascript levado a sério
 
Javascript levado a serio
Javascript levado a serioJavascript levado a serio
Javascript levado a serio
 
Jsf
JsfJsf
Jsf
 
FEMUG MGA #6 - Abandonando o jQuery
FEMUG MGA #6  - Abandonando o jQueryFEMUG MGA #6  - Abandonando o jQuery
FEMUG MGA #6 - Abandonando o jQuery
 
Ass Restaurante do Ze
Ass Restaurante do ZeAss Restaurante do Ze
Ass Restaurante do Ze
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVC
 
Test day 2012
Test day 2012Test day 2012
Test day 2012
 
Javascript
JavascriptJavascript
Javascript
 
Nos Batidores do FLISOL2010 Salvador com JEE6
Nos Batidores do FLISOL2010 Salvador com JEE6Nos Batidores do FLISOL2010 Salvador com JEE6
Nos Batidores do FLISOL2010 Salvador com JEE6
 
Capitulo 3 Livro Nielsen
Capitulo 3 Livro NielsenCapitulo 3 Livro Nielsen
Capitulo 3 Livro Nielsen
 
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
 
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
 
Ai ad-tp2-g1
Ai ad-tp2-g1Ai ad-tp2-g1
Ai ad-tp2-g1
 
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
 
5 frameworks para desenvolvimento de apps em html5
5 frameworks para desenvolvimento de apps em html55 frameworks para desenvolvimento de apps em html5
5 frameworks para desenvolvimento de apps em html5
 

Mais de Mario Mendonça

Integração contínua - Prática de desenvolvimento
Integração contínua - Prática de desenvolvimentoIntegração contínua - Prática de desenvolvimento
Integração contínua - Prática de desenvolvimentoMario Mendonça
 
Gulp - Automatizador de tarefas de front-end
Gulp - Automatizador de tarefas de front-endGulp - Automatizador de tarefas de front-end
Gulp - Automatizador de tarefas de front-endMario Mendonça
 
Web socket - Trazendo soquetes para a web
Web socket - Trazendo soquetes para a webWeb socket - Trazendo soquetes para a web
Web socket - Trazendo soquetes para a webMario Mendonça
 
Web Storage - Armazenamento de dados
Web Storage - Armazenamento de dadosWeb Storage - Armazenamento de dados
Web Storage - Armazenamento de dadosMario Mendonça
 

Mais de Mario Mendonça (8)

Integração contínua - Prática de desenvolvimento
Integração contínua - Prática de desenvolvimentoIntegração contínua - Prática de desenvolvimento
Integração contínua - Prática de desenvolvimento
 
JWT - Json Web Token
JWT - Json Web TokenJWT - Json Web Token
JWT - Json Web Token
 
Gulp - Automatizador de tarefas de front-end
Gulp - Automatizador de tarefas de front-endGulp - Automatizador de tarefas de front-end
Gulp - Automatizador de tarefas de front-end
 
Web socket - Trazendo soquetes para a web
Web socket - Trazendo soquetes para a webWeb socket - Trazendo soquetes para a web
Web socket - Trazendo soquetes para a web
 
Web Storage - Armazenamento de dados
Web Storage - Armazenamento de dadosWeb Storage - Armazenamento de dados
Web Storage - Armazenamento de dados
 
Web components
Web componentsWeb components
Web components
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
If bom é if morto
If bom é if mortoIf bom é if morto
If bom é if morto
 

Vanilla JS