Hola, estoy estudiando Angular 2 y React + Redux en este momento, y tengo una pregunta sobre la diferencia en el flujo de datos de esas dos opciones.
Muchas gracias por adelantado !
Si esos dos no son tan diferentes en términos de cómo fluyen los datos, ¿por qué alguien usaría Flux o Redux en lugar de la opción predeterminada del marco Angular 2?
Angular proporciona principalmente una capa de interfaz de usuario (componentes), mientras que la gestión del estado no está predefinida por el marco. Dado que angular tiene servicios, puede mantener la lógica comercial en los servicios (servicios con estado) y el estado de la interfaz de usuario en los componentes (componentes con estado), pero significa que no hay un lugar único para el estado, ya que se distribuye entre los servicios/componentes.
La razón principal para usar redux en aplicaciones angulares es separar la capa de interfaz de usuario de la capa de datos. En redux, el estado se separa en una capa separada (piense en un único objeto similar a un árbol) que se sincroniza con la capa de la interfaz de usuario (componentes) a través de servicios especiales inyectados en el constructor de componentes (verifique esta configuración ).
Si esos dos son bastante diferentes, ¿hay algún nombre al que pueda llamar para el flujo de datos de Angular 2 para obtener más referencias para comparar esos dos?
No me he encontrado con uno, probablemente porque, como mencioné anteriormente, angular como marco se centra en la presentación, no en el estado.
Al usar Redux con angular 2, está centralizando el estado de su aplicación en un solo lugar totalmente separado de sus componentes: la tienda.
Sus componentes pueden entonces ser sin estado, lo que le permite deshabilitar la detección de cambios internos en ellos de esta manera.
@Component({ changeDetection: ChangeDetectionStrategy.OnPush }) class myComponent { @Input() inputFromTheStore: Observable<State>; }De hecho, el ejemplo anterior es un componente sin estado, en el que se conecta un flujo de estado.
También para responder a tu pregunta:
Angular 2 usa flujo de datos unidireccional por defecto. Redux es una implementación de Flux, que (también) utiliza un flujo de datos unidireccional. ¿Cuál es la diferencia crucial entre ellos? (¿es tal vez la composición de las partes?)
La diferencia crucial es que con Redux el estado siempre vendrá desde arriba a través de @Input() . A diferencia de los componentes con estado angular2 tradicionales donde el estado podría transitar a través @Input() y @Output() .