Quais são as vantagens de usar somente Javascript em vez de usar apenas JQuery?
Tenho experiência limitada com JavaScript e codificação JQuery. Adicionei bits e trechos de cada uma às páginas HTML, mas na maioria das vezes codifiquei coisas do lado do servidor em outros idiomas. Percebi que, embora você possa teoricamente fazer as mesmas coisas usando uma das duas abordagens (e é claro que você pode até misturá-las no mesmo projeto), parece haver uma tendência a sempre começar a usar o JQuery desde o início não importa quais sejam as demandas do projeto.
Então, eu estou simplesmente me perguntando, há algum benefício pontual em não usar apenas o JQuery, mas apenas usar o JavaScript antigo e simples?
Sei que isso parece uma não-pergunta, porque pode-se dizer que "não há resposta definitiva" ou "pode ser debatido para sempre", mas na verdade estou esperando respostas pontuais como "Você pode fazer isso em uma abordagem e você não pode fazer isso com a outra ".
Conforme o comentário do scrwtp, não estou me referindo apenas à parte de manipulação do DOM. Minha pergunta é: JQuery é uma biblioteca. Para Javascript. O que acho estranho nessa biblioteca, em oposição a outras bibliotecas para outras línguas, é que, no caso do JQyery, ele parece ter sido projetado para poder usá-lo exclusivamente e não precisa tocar diretamente no Javascript. Isto é o contrário de, digamos, Hibernate e SQL, onde, embora a biblioteca (ou melhor, a estrutura neste caso, mas acho que a analogia ainda se aplique) domine MUITOS aspectos, você ainda poderá usar o SQL ao usá-lo , pelo menos em alguns casos adicionais. No entanto, no caso JQuery e Javascript, você pode fazer qualquer coisa com Javascript usando apenas JQuery (ou pelo menos é assim que me parece).
Conforme o comentário de Stargazer712: sim, eu concordo com você, a pergunta aqui é: como você coloca "apenas uma questão de como você usará o JavaScript". Era isso que eu realmente queria perguntar, mas fiz algumas formulações ruins. Aqui está outra analogia: Spring Expression Language. É uma biblioteca Java. Você não pode usá-lo sem Java, ele é baseado em Java e, ao longo de tudo, você ainda usa Java. Mas, na prática, o que você pode fazer é adicionar essa biblioteca a um projeto Java e, em seguida, escrever todo o seu código usando a linguagem de expressão do Spring EL, que efetivamente faz com que seu código não se pareça com o Java, e é até uma mudança de paradigma (por exemplo, você não tem mais forte aplicação do tipo ao usá-lo). Embora eu entenda que o JQuery é apenas uma biblioteca JS, para mim parece que, na prática, tem o mesmo efeito que o Spring EL com Java, ou seja, você só pode usá-lo por meio de um projeto e evitar as APIs do JavaScript. E eu queria saber se isso é uma boa coisa a fazer, quais podem ser as armadilhas etc.
(e sim, depois de ler as respostas de todos, entendo que:
uma. minha pergunta é um tanto absurda até certo ponto
b. mesmo que a pergunta fosse completamente precisa, a resposta seria praticamente "não, você não pode usar apenas o JQuery apenas o tempo todo)
fonte
Respostas:
Primeiro - é impossível usar apenas o jQuery, tudo o que o jQuery faz é adicionar um objeto $ ao seu escopo global, com vários métodos nele. Bibliotecas ainda mais manipuladoras, como prototype, não são uma alternativa ao javascript, são um cinto de ferramentas para resolver problemas comuns.
As principais vantagens de adicionar o jQuery ao seu cinto de ferramentas seriam:
Javascript não é mais apenas uma linguagem do lado do cliente e, como o jQuery depende muito do DOM, é um péssimo candidato para a mudança para o servidor. Eu recomendo dedicar algum tempo para entender por que você está usando o jQuery (fazer essa pergunta é um ótimo primeiro passo!) E avaliar quando é necessário. O jQuery pode ser perigoso, alguns dos principais perigos são:
Por fim, o jQuery é uma biblioteca incrivelmente útil e útil, quando usada corretamente. No entanto, é não uma alternativa para javascript. É uma biblioteca, assim como zepto.js , YUI , Dojo , MooTools e Prototype - uma das quais pode ser uma escolha muito melhor para o seu projeto atual.
Javascript é uma linguagem incompreendida e só recentemente é considerada como algo mais que uma linguagem de script para a maioria das pessoas. Eu realmente recomendo ler mais, aqui estão alguns bons lugares para começar:
Edit 07/2014 - Notei que este post ainda está recebendo atenção, então adicionei vários links. Eles não estão em uma ordem específica, mas devem ser úteis.
Tenho certeza de que há muitos outros ótimos recursos que não estou pensando ou que não conheço, outros respondentes devem ficar à vontade para adicionar a essa lista.
fonte
$.ajax
) que cospe objetos de invólucro conjuntos de elementos dom destinados a tornar os métodos DOM em geral muito menos PITA, tornando-os mais concisos, tendo métodos faça loop automático sobre conjuntos de objetos dom sempre que fizer sentido e compartilhe uma API comum e previsível entre navegadores (o que é menos problemático, IE <= 8).Existem vantagens, mas é discutível se elas realmente superam as desvantagens.
O principal é que você economiza largura de banda e obtém respostas mais rápidas. O jQuery adiciona outros ~ 30kb à sua resposta. Em algumas redes (e em alguns países), isso pode significar mais alguns milissegundos. Por outro lado, no entanto, você pode configurar o cache para ele com bastante facilidade usando seu servidor da Web (ou, como Xion disse, use-o no site do Google para que não cause impacto no seu próprio e ainda seja armazenado em cache).
A segunda coisa é que você pode precisar apenas de algumas funcionalidades muito simples e apenas o download e a configuração do jQuery podem levar mais tempo do que simplesmente implementar o que você precisa.
E, por último, convém rolar sua própria estrutura, que é principalmente uma má idéia, mas algumas pessoas têm seus motivos.
No entanto, se você descartar o jQuery simplesmente por se sentir intimidado pela curva de aprendizado, deve reconsiderar. Especialmente porque é bastante gentil.
fonte
Até onde eu sei, existem apenas duas vantagens em usar o javascript vanilla versus uma biblioteca como JQuery , MooTools , etc.
Vale ressaltar por que você deseja usar uma biblioteca javascript, para a qual há muitas:
Eu costumava trabalhar em uma loja virtual que era inflexível ao usar javascript de baunilha porque o jQuery era grande e assustador. Essa decisão, principalmente influenciada por um "desenvolvedor de javascript", foi a fonte de muitos bugs do navegador e o desenvolvimento lento, e tentar entrar em sua base de código foi uma experiência impressionante. Escrever sua própria estrutura pode parecer uma boa ideia, mas se você deseja contratar novos desenvolvedores, eles não podem entrar e ajudar rapidamente . Depois, há também a questão do fator de ônibus a considerar.
Como eu disse, costumava trabalhar lá ... havia pastos mais verdes em outros lugares. : ^)
fonte
Por acaso, misturo bastante o uso de ambos. A maior razão para isso é que, para alguns aplicativos (pense em extensões do Chrome), você não precisa de suporte entre navegadores. O que significa que eu posso tirar proveito de novos avanços como o css3 que, com coisas como transições, podem simplificar muito o seu código sobre o uso do jquery.
Também costumo fazer algo personalizado. Por todos os meios, como os outros disseram, você não deve reinventar a roda. Mas quando você é solicitado a fazer algumas funcionalidades malucas, geralmente acho muito mais fácil escrevê-las, então, tentar hackear algum plugin jquery que seja próximo, mas não uma combinação perfeita.
Também trabalhei com desenvolvedores que trabalham com nada além de jquery. E tenho que dizer que eles comprometiam a funcionalidade com muito mais frequência do que se não conseguissem encontrar um plugin jquery que fizesse o que queriam.
Em algum momento do desenvolvimento da Web, você será solicitado a fazer algo não pré-empacotado em uma biblioteca. Então, nesse ponto, é melhor você entender como o idioma base realmente funciona.
Portanto, TLDC : use os dois, você está em desvantagem usando apenas baunilha e está em desvantagem se não conhece a baunilha por dentro e por fora e insiste em sempre usar o jquery.
fonte
document.querySelectorAll
nos bastidores.A única coisa em que consigo pensar que você não pode ficar sem o JQuery seria usar os plugins do JQuery; mesmo assim, você poderia escrever sua própria biblioteca JS que forneceria exatamente o que o plug-in precisa.
Pense assim: JQuery é uma biblioteca Javascript de código aberto escrita em Javascript; você pode olhar para a fonte e, assim, aprender como fazer qualquer coisa que ela faça.
Você não pode usar o JQuery sem usar o Javascript antigo simples. Você provavelmente não usará
document.getElementById
, mas ainda definirá funções e variáveis das formas Javascript padrão; você pode até escrever umfor
loop padrão .O principal benefício de usar o JQuery é praticamente o mesmo que qualquer outra biblioteca de terceiros em qualquer idioma: você não precisará escrever tanto código para implementar a lógica específica do seu aplicativo.
Não deixe o tamanho assustar você. A versão CDN é um download de ~ 33k que será armazenado em cache pelo navegador do usuário após a primeira página ser acessada.
fonte
Se você está preocupado com o desempenho, tente usar o vanilla js sempre que possível. estruturas não apenas adicionam sobrecarga de largura de banda, mas também sobrecarga de processamento. E o jQuery também oferece compatibilidade com navegadores para navegadores bastante antigos.
se você estiver trabalhando em aplicativos ou jogos para celular (ou ambos combinados), precisará primeiro de desempenho e eficiência de recursos.
O jQuery e os plugins podem acelerar o seu desenvolvimento, mas principalmente se você confiar nos plugins jquery de terceiros, deverá saber o que eles estão fazendo por dentro. Muitos deles são exemplos ruins de qualidade e eficiência do código.
O jQuery pode ser 2 a 10 vezes mais lento que o JavaScript nativo. E isso pode facilmente incentivar os desenvolvedores a não projetar adequadamente sua interface e confiar demais nos seletores jQuery, que são muito mais lentos que os nativos.
fonte