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

Intro to the FIWARE Lab
Intro to the FIWARE LabIntro to the FIWARE Lab
Intro to the FIWARE LabFIWARE
 
Annual event industry pulse report 2016
Annual event industry pulse report 2016Annual event industry pulse report 2016
Annual event industry pulse report 2016Emma Olohan, PRII
 
Developing an IoT System FIWARE Based from the Scratch
Developing an IoT System FIWARE Based from the ScratchDeveloping an IoT System FIWARE Based from the Scratch
Developing an IoT System FIWARE Based from the ScratchFIWARE
 
re-Connect Madrid: Novedades Xamarin
re-Connect Madrid: Novedades Xamarinre-Connect Madrid: Novedades Xamarin
re-Connect Madrid: Novedades XamarinJavier Suárez Ruiz
 
Interfaces nativas Cross-Platform con Xamarin.Forms
Interfaces nativas Cross-Platform con Xamarin.FormsInterfaces nativas Cross-Platform con Xamarin.Forms
Interfaces nativas Cross-Platform con Xamarin.FormsJavier Suárez Ruiz
 

Destaque (7)

Fraude bcp
Fraude bcpFraude bcp
Fraude bcp
 
Intro to the FIWARE Lab
Intro to the FIWARE LabIntro to the FIWARE Lab
Intro to the FIWARE Lab
 
Annual event industry pulse report 2016
Annual event industry pulse report 2016Annual event industry pulse report 2016
Annual event industry pulse report 2016
 
Developing an IoT System FIWARE Based from the Scratch
Developing an IoT System FIWARE Based from the ScratchDeveloping an IoT System FIWARE Based from the Scratch
Developing an IoT System FIWARE Based from the Scratch
 
Xamarin REvolve 2016
Xamarin REvolve 2016Xamarin REvolve 2016
Xamarin REvolve 2016
 
re-Connect Madrid: Novedades Xamarin
re-Connect Madrid: Novedades Xamarinre-Connect Madrid: Novedades Xamarin
re-Connect Madrid: Novedades Xamarin
 
Interfaces nativas Cross-Platform con Xamarin.Forms
Interfaces nativas Cross-Platform con Xamarin.FormsInterfaces nativas Cross-Platform con Xamarin.Forms
Interfaces nativas Cross-Platform con Xamarin.Forms
 

Semelhante a Vanilla JS vs jQuery

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 vs jQuery (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 Jackson Veroneze

Mais de Jackson Veroneze (13)

Angular 4 - Introdução
Angular 4 - IntroduçãoAngular 4 - Introdução
Angular 4 - Introdução
 
Regex javascript
Regex   javascriptRegex   javascript
Regex javascript
 
Map, filter e reduce
Map, filter e reduceMap, filter e reduce
Map, filter e reduce
 
Expressões Regulares - Final
Expressões Regulares - FinalExpressões Regulares - Final
Expressões Regulares - Final
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Expressões Regulares - Parte II
Expressões Regulares - Parte IIExpressões Regulares - Parte II
Expressões Regulares - Parte II
 
Expressões Regulares - Introdução
Expressões Regulares - IntroduçãoExpressões Regulares - Introdução
Expressões Regulares - Introdução
 
GULP - Automatizador de tarefas
GULP - Automatizador de tarefasGULP - Automatizador de tarefas
GULP - Automatizador de tarefas
 
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
 
Conhecendo a API Geolocation
Conhecendo a API GeolocationConhecendo a API Geolocation
Conhecendo a API Geolocation
 
Web components
Web componentsWeb components
Web components
 
Progressive apps
Progressive appsProgressive apps
Progressive apps
 
If bom é if morto
If bom é if mortoIf bom é if morto
If bom é if morto
 

Vanilla JS vs jQuery