Como usar a biblioteca jQuery com estrutura Angular (quando é realmente necessário)

Apresentamos uma tradução de um artigo da Aditya Modi publicado em blog.bitsrc.io. Este artigo é sobre o uso do jQuery em aplicativos angulares.



Com pouca frequência, pego algo com cautela. No entanto, desta vez, a cautela não será prejudicial, pois a integração do jQuery no Angular não é tão simples.

Por que, de fato, eu escrevi este artigo? Às vezes, o jQuery é realmente necessário para o desenvolvimento no Angular, no entanto, essas estruturas JavaScript são extremamente raramente associadas a esta biblioteca. A Angular é responsável por renderizar e gerenciar o DOM e, se você fizer alterações no jQuery, corre o risco de obter um resultado extremamente inesperado.

Dica : Usando Bit , você pode compartilhar rapidamente componentes Angular e reutilizá-los em seus aplicativos. Isso permitirá que você e sua equipe gastem menos tempo criando novos aplicativos. Experimente.



Seja como for, em algumas situações, a interferência com a estrutura é necessária, justificada, pode ser uma saída real. Esses casos não são abordados no meu blog, no entanto, talvez eu fale sobre eles nos próximos artigos. Agora, deixe-me mostrar como adicionar a biblioteca jQuery ao Angular. Neste tutorial, usarei o VS Code. Você pode escolher outro editor de código ou baixar o Visual Studio Code para Windows, Linux e macOS .

Integração JQuery em Angular


Primeiro de tudo, precisamos criar um aplicativo Angular usando o comando ng new . Em seguida, com a ajuda do cd para a pasta em que a biblioteca jQuery será instalada através do npm. Vamos chamar o aplicativo resultante angularmeetsjquery .

 ng new angularmeetsjquery cd angularmeetsjquery npm install jquery — save 

Parece ótimo, mas o purista do jQuery prefere fazer o download via CDN do jQuery, em vez do npm. CDN é uma maneira alternativa de adicionar uma biblioteca jQuery a um aplicativo Angular, mas eu prefiro usar o método npm. Se você consultar https://jquery.com/download/ , encontrará as bibliotecas jQuery CDN e outras redes CDN do Google, Microsoft, CDNJS e jsDelivr. Eu recomendaria a versão oficial mais recente da CDN, pois ela suporta o mecanismo SRI (Subresource Integrity).

Para usar a CDN do jQuery, basta criar um link para o arquivo na tag de script diretamente do domínio da CDN do jQuery. O código com a função Integridade do sub-recurso terá esta aparência. (Como você pode ver, estou usando a biblioteca jQuery versão 3.3.1.)

 <script src=”https://code.jquery.com/jquery-3.3.1.js" integrity=”sha256–2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=” crossorigin=”anonymous”> </script> 

O script pode ser copiado do recurso code.jquery.com. Em seguida, você precisa inseri-lo no arquivo index.html no final da tag < body >.

Tornando a biblioteca jQuery global


O arquivo jquery.min.js , localizado na pasta dis do módulo jQuery, não é público (o nome correto da pasta é dist. - Aprox. Ed. ). Para tornar a biblioteca jQuery global, acesse o arquivo .angular-cli.json e escreva nele um link para o caminho para o arquivo jQuery.

Ao transferir um link para um caminho de arquivo dentro de um aplicativo Angular, a pasta raiz é src. No entanto, a biblioteca jQuery está dentro do diretório node_modules . Portanto, você precisa determinar o caminho correto para o .angular-cli.json .

 ../node_modules/jquery/dist/jquery.min.js 

Para garantir que o caminho esteja correto, acesse o node_modules→jquery→dist→jquery.min.js . Aqui você pode ver o caminho especificado, o que significa que a biblioteca jQuery foi adicionada globalmente para este aplicativo. Não espere que a página localhost: 4200 no seu navegador seja recarregada, porque o arquivo está localizado fora da pasta src. Para que as alterações apareçam no aplicativo, você precisará reiniciá-lo.

 ng serve –open 

Usando jQuery em um aplicativo angular


Para começar a usar a biblioteca jQuery com a estrutura Angular, você precisa acessar os componentes do aplicativo. Mostrarei como essas duas tecnologias podem funcionar em conjunto com um simples elemento HTML de button . Mas primeiro, exclua todas as linhas de código no arquivo app.component.html e adicione o elemento HTML do button .

 <button> Click me </button> 

A página será recarregada automaticamente e um botão aparecerá.



Precisamos definir o caractere para jQuery no arquivo app.component.ts .

 declare var $: any; 

Em seguida, insira o gancho do ciclo de vida do ngOnInit . Para fazer isso, você pode importar o OnInit do Angular Core.

 import { Component, OnInit} from '@angular/core'; 

Adicione ngOnInit .

 export class AppComponent implements OnInit { 

Independentemente da disponibilidade do DOM, você pode escrever o código jQuery dentro do método ngOnInit , como é feito no desenvolvimento padrão de aplicativos da web. Para testar o botão criado em app.component.html , adicione o evento button.click ao método button.click .

 export class AppComponent implements OnInit { ngOnInit(){ $('button').click(function(){ alert('Wass up!'); }); } } 

Se você clicar no botão, “Wass Up” aparecerá.

Conclusão


Adicionar jQuery ao Angular e usar esse pacote é uma idéia duvidosa.

Sim, à primeira vista, o método parece simples. No entanto, como eu disse no começo do artigo, por mais tentador que pareça o uso conjunto dessas duas tecnologias, a ideia geralmente acaba sendo ruim. Nos aplicativos Angular do mundo real, você precisa lidar com coisas muito mais complexas do que o elemento do button HTML relacionado ao evento. Meu conselho a todos que trabalham com a Angular e procuram uma oportunidade de incorporar o jQuery no código TypeScript: se não for necessário, não. Desejo-lhe experiências bem-sucedidas no campo do jQuery e Angular!

Source: https://habr.com/ru/post/pt454312/


All Articles