Desde el tutorial básico de Angular, parece que todo lo que hace es obtener algo de JSON de una API y mostrarlo. Además, está su magia de doble enlace.
Pero, ¿por qué debería usarlo en lugar de una solución de back-end (como Rails) que construye la vista en el back-end y la sirve al usuario, con todo en su lugar? ¿Cuáles son los casos de uso?
Angular lo ayuda a lidiar con la complejidad inherente a las interfaces de usuario enriquecidas. A medida que aumenta la complejidad de la interfaz de usuario, el modelo tradicional de generación de páginas en el servidor se vuelve mucho más complejo. Angular le permite descomponer su interfaz de usuario en fragmentos manejables y le permite separar la interfaz de usuario de la implementación. Esto hace que la generación de páginas del lado del servidor sea mucho más fácil, pero Angular realmente se destaca cuando realiza el cambio a aplicaciones basadas en JavaScript puro. Un buen ejemplo de tal aplicación es Trello .
La larga historia
Angular no está realmente dirigido a sitios que pueda implementar cómodamente generando todo en el servidor y enviándolo a través. Además, si bien ese es un enfoque perfectamente bueno que funciona para muchos sitios y aplicaciones en Internet, se vuelve cada vez más complejo (por lo tanto, difícil) mantener ese enfoque funcionando mientras intenta aumentar el nivel de interactividad en su sitio.
En última instancia, la forma de resolver esto es empujando su IU cada vez más hacia el lado Javascript de la ecuación. Angular le permite dividir su interfaz de usuario en componentes, lo que le proporciona una clara separación entre la apariencia y el funcionamiento. Luego puede crear páginas bastante simples en el servidor, y el front-end JS se usa para crear una interfaz de usuario enriquecida que realiza llamadas por separado a su servidor para obtener los datos que necesitan.
Sin embargo, llega un punto en el que todo lo que desea hacer es crear una página auxiliar que cargue una aplicación completamente basada en JavaScript. Probablemente el ejemplo más conocido del tipo de caso de uso donde Angular realmente brilla es Trello (usa Backbone, no Angular, pero es el mismo caso de uso). Hay un sitio http://builtwith.angularjs.org/ que tiene más sitios de ejemplo que usan Angular.
Entonces, ¿la respuesta corta? Angular facilita la creación de interfaces de usuario ricas y altamente interactivas al permitirle descomponer su IU en componentes y, en última instancia, activar completamente JavaScript.
AngularJ sodes no proporciona una separación clara de apariencia y lógica.
rsman
13
@rsman, claramente lo hace. El punto principal del enlace de datos es que no escribe un montón de código de manipulación DOM, angular lo hace por usted, ergo, define cómo se ve, define cómo funcionan sus interacciones, etc., pero evita tener que acoplar esos dos junto con el código que actualiza el aspecto del código que maneja las interacciones.
@jamesstoneco, de hecho, no, simplemente usé Trello como ejemplo de una aplicación JS puramente del lado del cliente. Fue uno de los primeros en hacerlo bien.
guysherman
7
Se trata de hacer interfaces de usuario más receptivas. El doble enlace, la inyección de dependencia, etc., permite crear páginas dinámicas con bastante facilidad. Puede escribir directivas en Angular que le brinda una forma declarativa de construir una vista.
Como ejemplo, en un proyecto actual tenemos una vista que usa varios cientos de líneas de código JavaScript para crear una experiencia de usuario receptiva. Aun así, la página tiene errores y es muy difícil de mantener. Comenzamos a buscar una mejor opción y buscamos en backbone.js y knockout.js. Finalmente probamos Angular. Pudimos crear una página mucho más receptiva y fácil de mantener con solo unas pocas líneas de código. Atrás quedó todo el código de manipulación DOM. Atrás quedaron todas las creaciones de vista del backend torpes que tuvieron que ser buscadas e insertadas en los lugares correctos. Atrás quedó todo el código escrito para mantener el modelo y la vista sincronizados. Con esa experiencia, la decisión de mudarse a Angular se hizo más fácil y hasta ahora no nos hemos arrepentido.
"Atrás quedó todo el código de manipulación DOM". Esto es lo más importante en mi opinión.
Doblado
5
Angular es para desarrollar aplicaciones de una sola página, ayuda a proporcionar un esqueleto sólido para su aplicación. También es bueno con los formularios, no tan bueno con las IU complejas y llenas de datos. El enlace de datos bidireccional es "mágico" al principio, pero debe tener en cuenta que los marcos más recientes (incluido Angular 2) se alejan del enlace de datos bidireccional para un enfoque más simple de flujo de datos hacia abajo / flujo de eventos (indicando que La historia sería demasiado larga aquí).
También tengo que advertirte que Angular no tiene una forma definida de hacer las cosas y, a veces, ofrece muchas maneras de desollar a un gato, lo que puede hacer que la curva de aprendizaje sea más empinada. Además, si desea escalar una aplicación Angular, deberá comprender su mecánica interna y su posible impacto en el rendimiento. Una vez que haga eso, y una vez que establezca patrones de diseño sólidos consistentes, el cielo es el límite. Pero debes dedicarle tiempo.
Dicho esto, su pregunta parece ser más sobre cuáles son los casos de uso de SPA en lugar de Angular en sí.
Los casos de uso de las aplicaciones de una sola página son para tener aplicaciones web con una sólida interfaz de usuario / UX y una mejor sensación general de la aplicación. Al no tener que volver a cargar su página, ahorra tiempo de procesamiento y ancho de banda. También separas los datos y la presentación, lo cual es increíble Su aplicación se convierte en:
Se trata de hacer interfaces de usuario más receptivas. El doble enlace, la inyección de dependencia, etc., permite crear páginas dinámicas con bastante facilidad. Puede escribir directivas en Angular que le brinda una forma declarativa de construir una vista.
Como ejemplo, en un proyecto actual tenemos una vista que usa varios cientos de líneas de código JavaScript para crear una experiencia de usuario receptiva. Aun así, la página tiene errores y es muy difícil de mantener. Comenzamos a buscar una mejor opción y buscamos en backbone.js y knockout.js. Finalmente probamos Angular. Pudimos crear una página mucho más receptiva y fácil de mantener con solo unas pocas líneas de código. Atrás quedó todo el código de manipulación DOM. Atrás quedaron todas las creaciones de vista del backend torpes que tuvieron que ser buscadas e insertadas en los lugares correctos. Atrás quedó todo el código escrito para mantener el modelo y la vista sincronizados. Con esa experiencia, la decisión de mudarse a Angular se hizo más fácil y hasta ahora no nos hemos arrepentido.
fuente
Angular es para desarrollar aplicaciones de una sola página, ayuda a proporcionar un esqueleto sólido para su aplicación. También es bueno con los formularios, no tan bueno con las IU complejas y llenas de datos. El enlace de datos bidireccional es "mágico" al principio, pero debe tener en cuenta que los marcos más recientes (incluido Angular 2) se alejan del enlace de datos bidireccional para un enfoque más simple de flujo de datos hacia abajo / flujo de eventos (indicando que La historia sería demasiado larga aquí).
También tengo que advertirte que Angular no tiene una forma definida de hacer las cosas y, a veces, ofrece muchas maneras de desollar a un gato, lo que puede hacer que la curva de aprendizaje sea más empinada. Además, si desea escalar una aplicación Angular, deberá comprender su mecánica interna y su posible impacto en el rendimiento. Una vez que haga eso, y una vez que establezca patrones de diseño sólidos consistentes, el cielo es el límite. Pero debes dedicarle tiempo.
Dicho esto, su pregunta parece ser más sobre cuáles son los casos de uso de SPA en lugar de Angular en sí.
Los casos de uso de las aplicaciones de una sola página son para tener aplicaciones web con una sólida interfaz de usuario / UX y una mejor sensación general de la aplicación. Al no tener que volver a cargar su página, ahorra tiempo de procesamiento y ancho de banda. También separas los datos y la presentación, lo cual es increíble Su aplicación se convierte en:
fuente