Dentro a primeira parte deste artigo sobre CoffeeScript, você viu seus recursos básicos; mas vamos ser honestos, na maioria das vezes usamos a biblioteca jQuery para nos ajudar a escrever nosso JavaScript e o que eu mostrei na primeira parte foi apenas baunilha JavaScript.

Nesta parte vamos nos juntar ao CoffeeScript, LocalStorage e jQuery para criar um gerenciador de contatos simples onde podemos salvar o número de alguém, o nome e também verificar se essa pessoa é um amigo e com a ajuda do LocalStorage este gerenciador de contatos salvará seus contatos quando você atualize sua página.

Você pode ver a demonstração do que iremos criar neste demo que eu construí

O HTML

Como você viu na demonstração, o nosso HTML será a forma e um simples vazio

    que vamos preencher mais tarde com os nomes e números:

      Mesmo que este formulário tenha um método e uma ação, posteriormente bloquearemos a ação padrão com JavaScript para impedir que ele realmente recarregue a página e pule quando ela for enviada. Em vez disso, apenas preencheremos os números da lista não ordenada com o que está nas entradas do formulário.

      O CoffeeScript

      Agora vamos entrar na melhor parte deste artigo: falando sobre CoffeeScript e jQuery juntos, duas ferramentas que foram feitas para tornar nosso desenvolvimento de JavaScript mais simples e produtivo.

      Vamos pensar sobre o que queremos que esse aplicativo faça em pontos antes da codificação:

      • Adicione a classe marcada se a caixa de seleção estiver marcada e remova-a se não estiver;
      • verifique se há um evento de clique no botão enviar;
      • obtenha os valores do número e nome;
      • coloque estes valores em nossa página;
      • adicione todos os nomes e números ao LocalStorage;
      • excluir tudo o que digitamos no formulário;
      • impedir o envio do formulário;
      • ler e exibir quaisquer dados mantidos no LocalStorage.

      Agora temos tudo isso em ordem, podemos começar do topo. Para adicionar a classe verificada , precisamos verificar um clique e depois alternar a classe em cada classe, já vimos como construir funções no CoffeeScript na parte 1, então:

      $('#friend').click -> $(this).toggleClass 'checked'

      A próxima coisa que precisamos é verificar um clique no botão enviar e armazenar algumas variáveis ​​que precisaremos mais adiante:

      $('#submit').click ->ul = $('#numbers')number = $('#number').val()name = $('#name').val()

      Nesta etapa, definimos nossa função e as variáveis ​​que precisamos depois, a variável ul mantém a lista não ordenada que conterá todos os nomes e números e as próximas duas armazenarão o que digitarmos nas entradas.

      Esta é a parte em que pegamos todos os valores que temos e prefixamos um item de lista para cada número que temos. Lembre-se de que queremos estilizar as coisas de forma um pouco diferente se o contato for um amigo, portanto, verificaremos a classe da caixa de seleção e adicionaremos classes diferentes aos itens da nossa lista de acordo. Para isso, usaremos uma instrução if simples, conforme descrito na parte 1:

      if $('#friend').hasClass 'checked'$(ul).prepend '
    • Name: ' + name + '
      Number: ' + number + '
    • 'else$(ul).prepend '
    • Name: ' + name + '
      Number: ' + number + '
    • '

      A base do nosso aplicativo está pronta, mas se você recarregar a página, verá que todos os números desapareceram, por isso, precisamos adicionar o conteúdo dos números ao LocalStorage e chamaremos de contatos:

      localStorage.setItem 'contacts', $(ul).html()

      O que estamos fazendo é nomear o que queremos salvar primeiro, e depois da vírgula declaramos o valor a ser salvo. Neste caso, vamos salvar o conteúdo da lista não ordenada.

      Com esta linha terminada, temos todos os números e nomes no LocalStorage, então vamos adicionar os toques finais à função redefinindo o formulário e retornando false para garantir que a página não seja recarregada:

      $("form")[0].reset()return false 

      A função agora está completa e tudo o que precisamos fazer agora é verificar se temos algo no LocalStorage com o nome dos contatos e, se precisarmos, colocaremos isso na página:

      if localStorage.getItem 'contacts'$('#numbers').html localStorage.getItem 'contacts'

      Tudo o que estamos fazendo é verificar e, em seguida, colocar o conteúdo desse item na página. Com este último toque, nosso gerenciador de contatos está pronto e o código completo do CoffeeScript usado foi:

      $('#friend').click -> $(this).toggleClass 'checked'$('#submit').click ->ul = $('#numbers')number = $('#number').val()name = $('#name').val()if $('#friend').hasClass 'checked'$(ul).prepend '
    • Name: ' + name + '
      Number: ' + number + '
    • 'else$(ul).prepend '
    • Name: ' + name + '
      Number: ' + number + '
    • 'localStorage.setItem 'contacts', $(ul).html()$("form")[0].reset();return falseif localStorage.getItem 'contacts'$('#numbers').html localStorage.getItem 'contacts'

      E se nós executarmos este código através do compilador, nós acabaremos com o seguinte JavaScript:

      $('#friend').click(function() {return $(this).toggleClass('checked');});$('#submit').click(function() {var name, number, ul;ul = $('#numbers');number = $('#number').val();name = $('#name').val();if ($('#friend').hasClass('checked')) {$(ul).prepend('
    • Name: ' + name + '
      Number: ' + number + '
    • ');} outro {$(ul).prepend('
    • Name: ' + name + '
      Number: ' + number + '
    • ');} localStorage.setItem ('contatos', $ (ul) .html ()); $ ("forma") [0] .reset (); retorno falso;}); if (localStorage.getItem ('contatos')) {$('#numbers').html(localStorage.getItem('contacts'));}

      Compare os dois, podemos ver que o CoffeeScript tem 587 palavras e 14 linhas, enquanto o Javascript tem 662 palavras e 21 linhas, e se compararmos a legibilidade, podemos ver que o CoffeeScript é substancialmente mais legível do que o equivalente JavaScript. Se neste tipo de aplicativo simples o CoffeeScript puder economizar 7 linhas de código, imagine o quanto ele economizará em um aplicativo completo!

      Conclusão

      Espero que este artigo tenha lhe dado uma idéia melhor do CoffeeScript e como ele pode melhorar sua codificação JavaScript no dia-a-dia. O código escrito neste artigo não é para ser o JavaScript mais limpo ou mais fácil, mas sim para ilustrar o uso do CoffeeScript. Espero agora que você possa ver como ele é poderoso com o jQuery e considere o uso dessa excelente linguagem pequena em sua codificação diária, pois isso certamente economizará horas de digitação.

      Você usa o CoffeeScript? Quão útil você encontra no dia-a-dia? Deixe-nos saber nos comentários.

      Imagem em destaque / miniatura, imagem de café via Shutterstock.