Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Repensando o uso do jQuery

Repensando o uso do jQuery

Palestra apresentada em http://frontinpoa.com.br/2014/ em novembro de 2014.

Vinícius Almeida

November 08, 2014
Tweet

More Decks by Vinícius Almeida

Other Decks in Programming

Transcript

  1. @vimoding De um tempo pra cá, a utilização da jQuery

    anda sendo bastante contestada. Repensando o uso do
  2. @vimoding Você já parou pra refletir porque a utilizamos até

    hoje? Repensando o uso do John Resig iniciou o projeto 8 anos atrás
  3. @vimoding O fato principal aqui é que a jQuery é

    a biblioteca JavaScript mais utilizada da internet… Repensando o uso do http://w3techs.com/
  4. @vimoding Essa implementação parece bem razoável. Mas o uso do

    nosso componente não para por aí. Repensando o uso do
  5. Aplicar um certo componente em dois pontos da mesma página

    precisa ser simples. @vimoding Repensando o uso do
  6. @vimoding Repensando o uso do Aplicar um certo componente em

    dois pontos da mesma página precisa ser simples.
  7. @vimoding Repensando o uso do Aplicar um certo componente em

    dois pontos da mesma página precisa ser simples. $('#primary-slider-container').myOwnSlider({ autoPlay : true, time : 1500 }); $('#secondary-slider-container').myOwnSlider({ autoPlay : false, widthDots : true, allowTouch : false });
  8. @vimoding Mas primeiro precisamos falar um pouco sobre data atributos.

    Repensando o uso do <div data-jquery-plugin="myOwnSlider" data-auto-play="false" data-with-dots="true" data-allow-touch="false">
  9. @vimoding Mas primeiro precisamos falar um pouco sobre data atributos.

    Repensando o uso do // Output de .data() { jqueryPlugin : 'myOwnSlider', autoPlay : false, withDots : true, allowTouch : false }
  10. @vimoding Então vamos usar isso a nosso favor. Repensando o

    uso do $(function() { var elements = $('[data-jquery-plugin]'); $.each(elements, function(__index, element) { var currentElement = $(element), options = currentElement.data(); currentElement[options.jqueryPlugin](options); }); });
  11. @vimoding Então vamos usar isso a nosso favor. Repensando o

    uso do $(function() { var elements = $('[data-jquery-plugin]'); $.each(elements, function(__index, element) { var currentElement = $(element), options = currentElement.data(); currentElement[options.jqueryPlugin](options); }); });
  12. @vimoding Então vamos usar isso a nosso favor. Repensando o

    uso do $(function() { var elements = $('[data-jquery-plugin]'); $.each(elements, function(__index, element) { var currentElement = $(element), options = currentElement.data(); currentElement[options.jqueryPlugin](options); }); });
  13. @vimoding Então vamos usar isso a nosso favor. Repensando o

    uso do $(function() { var elements = $('[data-jquery-plugin]'); $.each(elements, function(__index, element) { var currentElement = $(element), options = currentElement.data(); currentElement[options.jqueryPlugin](options); }); });
  14. @vimoding Ok, já elevamos o nível do nosso código de

    uma forma bem interessante. Repensando o uso do
  15. @vimoding Mas devemos estar preparados para problemas um pouco mais

    complexos do que esse. Repensando o uso do
  16. @vimoding E não é que nessa situação a jQuery nos

    ajuda também? Repensando o uso do
  17. @vimoding O método .one() Repensando o uso do $("#seletor").one("click", function()

    { console.log("Isto será executado apenas uma vez"); });
  18. @vimoding O método .one() Repensando o uso do <div data-jquery-plugin="myOwnSlider"

    data-auto-play="false" data-with-dots="true" data-allow-touch="false" data-lazy-init-on="hover">
  19. O método .one() @vimoding Repensando o uso do $(function() {

    var elements = $('[data-jquery-plugin]'); $.each(elements, function(__index, element) { var currentElement = $(element), options = currentElement.data(); currentElement[options.jqueryPlugin](options); }); });
  20. @vimoding O método .one() Repensando o uso do $(function() {

    var componentElements = $('[data-jquery-plugin]'); $.each(componentElements, function(__index, element) { var currentElement = $(element), options = currentElement.data(); if (options.lazyInitOn) { currentElement.one(options.lazyInitOn, function () { currentElement[options.jqueryPlugin](options); }); } else { currentElement[options.jqueryPlugin](options); } }); });
  21. @vimoding O método .one() Repensando o uso do $(function() {

    var componentElements = $('[data-jquery-plugin]'); $.each(componentElements, function(__index, element) { var currentElement = $(element), options = currentElement.data(); if (options.lazyInitOn) { currentElement.one(options.lazyInitOn, function () { currentElement[options.jqueryPlugin](options); }); } else { currentElement[options.jqueryPlugin](options); } }); });
  22. @vimoding Agora temos um código escalável e com inteligência para

    entender a real necessidade em algumas situações. Repensando o uso do
  23. @vimoding jQuery é importante para projetos web em determinados contextos.

    E também pode representar um desafio técnico interessante. Repensando o uso do