Pesquisa de site

javascript - AngularJS é apenas para aplicações de página única (SPAs)?


Estamos analisando opções para construir a interface de um aplicativo que estamos criando e estamos tentando avaliar uma ferramenta que funcione para nós e nos dê a melhor plataforma para avançar.

Este é um projeto Node.js. Nosso plano inicial era usar o Express e seguir por esse caminho, mas decidimos que antes de iniciarmos esta etapa, pode ser melhor revisar o que existe por aí. Nossa aplicação tem várias áreas que não acreditamos se encaixarem no modelo de página única, pois elas estão relacionadas do ponto de vista da aplicação, mas não do ponto de vista da visualização.

Nós vimos alguns dos frameworks que poderíamos usar para desenvolver o cliente, como Backbone.js, Meteor, etc., e também AngularJS.

Esta pode ser uma pergunta bastante óbvia, mas não conseguimos decifrar se o AngularJS é puramente para aplicações de página única ou se pode ser usado para aplicações de múltiplas páginas como o Express, por exemplo.


ATUALIZAÇÃO 17 de julho de 2013 Apenas para manter as pessoas informadas, estarei atualizando esta pergunta à medida que avançamos no processo. Por enquanto, vamos construir tudo juntos e veremos quão bem isso funciona. Entramos em contato com algumas pessoas que são mais qualificadas em AngularJS do que nós e fizemos a pergunta sobre como dividir aplicações maiores que compartilham contexto, mas que podem ser grandes demais para funcionar em uma única página.

O consenso foi que poderíamos servir várias páginas estáticas e criar aplicações AngularJS que funcionassem apenas com essas páginas, efetivamente criando uma coleção de SPA e vinculando essas aplicações juntas usando vinculação padrão. Agora, nosso caso de uso é muito específico, já que nossa solução possui várias aplicações, e como eu disse, vamos tentar a base de código única primeiro e otimizar a partir daí.

ATUALIZAÇÃO 18 de junho de 2016 O projeto caiu no esquecimento, então nunca conseguimos fazer muita coisa. Recentemente retomamos o projeto, mas não estamos mais usando Angular e sim React. Ainda estamos usando a arquitetura descrita na atualização anterior, onde usamos express e aplicativos auto-contidos, por exemplo, temos uma rota /chat no express que serve nosso aplicativo de chat em React, temos outra rota /projects que serve o aplicativo de projetos e assim por diante. A maneira como estamos olhando isso é que cada aplicativo é uma raiz agregada em termos de seu conjunto de recursos, ele precisa ser capaz de funcionar sozinho para ser considerado um aplicativo por si só. Tecnicamente, todas as informações estão disponíveis, é só express básico e qualquer tipo de construção de aplicativo do lado do cliente que você queira usar.

Resposta #1

De forma alguma. Você pode usar o Angular para construir uma variedade de aplicativos. O roteamento do lado do cliente é apenas uma pequena parte disso.

Você tem uma grande lista de recursos que irão beneficiá-lo fora do roteamento do lado do cliente:

  • vinculação bidirecional
  • modelagem
  • formatação de moeda
  • pluralização
  • controles reutilizáveis
  • Manipulação de API RESTful
  • Manipulação de AJAX
  • modularização
  • injeção de dependência

É loucura pensar que tudo isso "só poderia ser usado em um aplicativo de página única". Claro que não... isso é como dizer "Jquery é só para projetos com animações".

Se se encaixa no seu projeto, use-o.

Resposta #2

Eu também tive dificuldades com o "como" no início com Angular. Então, um dia me ocorreu: "Ainda é javascript". Existem muitos exemplos sobre os detalhes do Angular (um dos meus favoritos junto com o livro https://github.com/angular-app/angular-app). A maior coisa a lembrar é carregar os arquivos js assim como você faria em qualquer outro projeto. Tudo o que você precisa fazer é garantir que as diferentes páginas referenciem o objeto Angular correto (controller, view, etc.) e você estará pronto para começar. Espero que isso faça sentido, mas a resposta era tão simples que eu a ignorei.

Artigos relacionados