Por que eu usaria o Angular? [fechadas]


20

No tutorial básico do Angular, parece que tudo o que faz é buscar algum JSON de uma API e exibi-lo. Além disso, há sua mágica de dupla ligação.

Mas por que eu o usaria em vez de uma solução de back-end (como o Rails) que constrói a exibição no back-end e a serve ao usuário, com tudo pronto? Quais são os casos de uso?

Respostas:


26

TLDR;

Angular ajuda a lidar com a complexidade inerente às interfaces de usuário avançadas. À medida que a complexidade da interface do usuário aumenta, o modelo tradicional de geração de páginas no servidor fica muito mais complexo. Angular permite decompor sua interface do usuário em partes gerenciáveis ​​e separar a interface do usuário da implementação. Isso facilita muito a geração de páginas no servidor, mas o Angular realmente se destaca quando você muda para aplicativos puros baseados em javascript. Um bom exemplo desse aplicativo é o Trello .

A longa história

O Angular não é realmente direcionado a sites que você pode implementar confortavelmente, gerando tudo no servidor e enviando-o. Além disso, embora essa seja uma abordagem perfeitamente boa que funcione para muitos sites e aplicativos na Internet, torna-se cada vez mais complexo (portanto, difícil) manter essa abordagem funcionando enquanto você tenta aumentar o nível de interatividade em seu site.

Em última análise, a maneira como você resolve isso é empurrando sua interface do usuário cada vez mais para o lado Javascript da equação. Angular permite que você divida sua interface do usuário em componentes, oferecendo uma separação clara entre a aparência e o modo de funcionamento. Você pode criar páginas bastante simples no servidor, e o front end JS é usado para criar uma interface do usuário rica que faz chamadas separadas de volta ao servidor para os dados de que precisam.

Porém, chega um momento em que tudo o que você quer fazer é servidor de uma página stub que carrega um aplicativo completamente baseado em javascript. Provavelmente, o exemplo mais conhecido do tipo de caso de uso em que o Angular realmente brilha é o Trello (ele usa Backbone, não Angular, mas é o mesmo caso de uso). Existe um site http://builtwith.angularjs.org/ que possui mais sites de exemplo que usam Angular.

Então a resposta curta? O Angular facilita a criação de interfaces de usuário ricas e altamente interativas, permitindo decompor sua interface do usuário em componentes e, finalmente, tornar-se completamente javascript.


3
Os modos AngularJ não fornecem uma separação clara entre aparência, comportamento e lógica.
rsman 10/10

13
@rsman, claramente. O ponto principal da ligação de dados é que você não escreve um monte de código de manipulação de DOM, angular faz isso por você, portanto, define como ele se parece, define como suas interações etc. funcionam, mas evita ter que unir esses dois ao código que atualiza a aparência do código que lida com interações.
guysherman

3
Não Trello, utilizado no exemplo não usar Angular blog.fogcreek.com/the-trello-tech-stack
JAMESSTONEco

1
@jamesstoneco De fato, simplesmente não usei o Trello como um exemplo de um aplicativo JS puramente do lado do cliente. Foi um dos primeiros a fazê-lo bem.
guysherman

7

Trata-se de criar interfaces de usuário mais responsivas. A ligação dupla, a injeção de dependência e assim por diante tornam possível criar páginas dinâmicas com bastante facilidade. Você pode escrever diretivas em Angular, o que fornece uma maneira declarativa de construir uma exibição.

Como exemplo, em um projeto atual, temos uma visão que usa várias centenas de linhas de código JavaScript para criar uma experiência de usuário responsiva. Mesmo assim, a página é um pouco complicada e muito difícil de manter. Começamos a procurar uma opção melhor e analisamos backbone.js e knockout.js. Eventualmente, tentamos Angular. Conseguimos criar uma página muito mais responsiva e sustentável, com apenas algumas linhas de código. Foi-se todo o código de manipulação do DOM. Desapareceram todas as criações desajeitadas de visualização de back-end que precisavam ser buscadas e inseridas nos lugares certos. Foi-se todo o código que foi escrito para manter o modelo e a visualização sincronizados. Com essa experiência, a decisão de mudar para a Angular tornou-se mais fácil e até agora não lamentamos.


"Foi todo o código de manipulação do DOM." Esta é a coisa mais importante na minha opinião.
Bent

5

Angular é para o desenvolvimento de aplicativos de página única, ajuda a fornecer um esqueleto sólido para o seu aplicativo. Também é bom com formulários, não tão bom com UIs complexas e cheias de dados. A ligação de dados bidirecional é "mágica" no início, mas você deve estar ciente de que as estruturas mais recentes (incluindo o próprio Angular 2) se afastam da ligação de dados bidirecional para uma abordagem mais simples de fluxo de dados para baixo / fluxo de eventos (informando que a história seria muito longa aqui).

Também preciso avisar que o Angular não tem uma maneira definida de fazer as coisas e às vezes oferece muitas maneiras de esfolar um gato, o que pode tornar a curva de aprendizado mais íngreme. Além disso, se você quiser dimensionar um aplicativo Angular, precisará entender sua mecânica interna e o possível impacto no desempenho. Depois de fazer isso e depois de estabelecer padrões consistentes de design sólido, o céu é o limite. Mas você precisa dedicar tempo a isso.

Dito isso, sua pergunta parece ser mais sobre quais são os casos de uso de SPAs, e não o próprio Angular.

Os casos de uso dos Aplicativos de Página Única são para aplicativos da Web com UI / UX robusta e uma sensação geral melhor dos aplicativos. Por não ter que recarregar sua página, você economiza tempo e largura de banda de renderização. Você também separa dados e apresentação, o que é incrível. Seu aplicativo se torna:

  • Arquivos estáticos, incluindo seu index.html
  • Uma API REST que serve dados
  • Um aplicativo front-end controlado por dados
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.