Uma das maiores vantagens do jQuery é sua possibilidade de extensão. Criar plugins para ele, uma vez feito, torna-se um vício. Com isto o código fica reaproveitável e e cada vez mais pode ser feito muito com poucas linhas de código.
Vários plugins já se solidificaram e tornam-se essenciais quando você adota o jQuery. Muitos deles em várias discussões no grupo oficial são requeridos para serem adicionados no próprio core do jQuery. Mas os criadores do jQuery não adotam esta idéia, até por que o jQuery precisa continuar limpo e flexível e para isto deve ser somente o jQuery.
Neste post não vou falar detalhado sobre um plugin ou outro, isto ficará para próximos posts. Agora vou somente dar uma visão básica sobre todos e para vocês saberem o quão útil estes plugins são.
Essenciais para o Ajax
Com o ajax, para se cadastrar dados do banco ou pegar dados do usuário digitados em formulários, fica difícil a tarefa “normal” e fácil de pegar os dados e no arquivo de destino no lado servidor eles serem “captados” pela requisição post. Esta tarefa para o javascript precisa ser feita à mão. Sem frameworks, estes dados precisam ser pegos acessando valores de formulários. No entanto, o jQuery tem em seu core o método val() que faz este trabalho. Apesar de facilitar, ela é ainda bastante manual. Com isto, torna-se necessário e muitas vezes essencial o Form plugin para jQuery. Quem ainda não o conhece, trate de conhecer sua documentação como um core do jQuery. Este plugin pega os dados do formulário e faz uma requisição post passando todos os dados transformando todos os names e seus valores para serem acessados no lado servidor normalmente, sem precisar mais nenhum esforço. Além disso, ele possui callbacks para validação e controle dos dados, além de configurar toda a resposta retornada por xml, json ou até mesmo html.
Além disto, ele é integrado com o validate, ou seria o validate integrado com ele? 🙂 . A verdade é que a parte de validação do form plugin não é tão eficiente e flexível quanto o validate. Este plugin é poderosíssimo e bastante extendível. Você pode fazer toda a validação do lado cliente com ele e até adicionar métodos de validação remota. Quando tudo está ok, o formulário pode ser enviado via ajaxSubmit, um dos métodos do jQuery Form plugin.
Outro plugin que não pode faltar com qualquer site usando ajax, principalmente na navegação é o Live Query, que mantém os eventos após qualquer modificação do dom, mas afinal, o que é isso?
Quando é feita uma atualização por ajax, principalmente usando o método load, a página inserida pelo DOM perde os eventos e suas configurações. Ou seja, se você tiver colocado um link para carregar outra página por ajax, e esta página interna contiver links que mais uma vez executam métodos load, as páginas internas não irão herdar os eventos. É como se eles se “perdessem”. Para contornar isto, nos callbacks do ajax, você tem que carregar tudo que irá permanecer novamente. Ou seja, criar funções para fazer requisições e executá-las novamente para que as modificações do dom não percam os seus eventos. Isto é uma tarefa que faz o ajax no jQuery muitas vezes perder sua simplicidade. Sendo assim, com o liveQuery você pode fazer isto normalmente sem perder estas funcionalidades. Ao invés do método bind, vc utiliza o livequery e ele faz com que todo o conteúdo gerado por script herde os eventos, como por exemplo, o ajax. Ele não se restringe somente a isto e tem que ser bastante estudadod, mas se já tiverem tido este problema(e se tentarem fazer a mesma coisa sem ele terão este problema), este plugin resolve muito bem.
Para animações, interface!
Para realizar animações personalizadas, o plugin interface possui tudo o que você precisa. Ele possui uma biblioteca de animaçõs que vão muito além do core do jQuery, além de ter bibliotecas de sortables, draggables e assim sucessivamente. Se deseja fazer animações web2.0, ferramentas de interação totalmente inovadoras, ele é essencial.
O jQuery está também com um esforço de criar o que o scriptaculous é para o prototype, uma ferramenta totalmente completa de interação. Conhecida como jQuery UI, ela possui uma biblioteca totalmente completa de interação que vai além do interface na tentativa de popularizar e enriquecer a interface de usuário do jQuery. Ela possui Widgets e métodos de usar bastante simples e personalizável.
Ando tendo problemas com ele, mas provavelmente é devido ao fato de ser bastante novo e tem muito a melhorar, por enquanto vou ficando com o interface.
Olá Alexandre,
Deixa eu lhe apresentar este meu plugin:
http://leandrovieira.com/projects/jquery/lightbox
Um abraço.
Muito bom seu plugin cara, valeu por ter avisado, não sabia que tinha um desenvolvedor brasileiro com um plugin tão bom, acho que ele entra nos essenciais sim, já postou para a equipe do jQuery?? Ele parece funcionar melhor que thinckbox… abraços e sucesso, muito bom mesmo!