El flujo de datos unidireccional es una técnica que se encuentra principalmente en la programación reactiva funcional. También se conoce como flujo de datos unidireccional, lo que significa que los datos tienen una y solo una forma de transferirse a otras partes de la aplicación. En esencia, esto significa que los componentes secundarios no pueden actualizar los datos que provienen del componente principal. En React, los datos que provienen de un padre se denominan props . Angular hace uso del enlace bidireccional en el que el flujo de datos tiene lugar en ambas direcciones. React no admite el enlace bidireccional para asegurarse de que está siguiendo una arquitectura de flujo de datos limpia. El principal beneficio de este enfoque es que los datos fluyen a través de su aplicación en una sola dirección, lo que le brinda un mejor control sobre ellos.
En términos de React significa:
- el estado se pasa a la vista y a los componentes secundarios
- las acciones son desenstringdas por la vista
- las acciones pueden actualizar el estado
- el cambio de estado se pasa a la vista y a los componentes secundarios
Nota: La vista es el resultado del estado de la aplicación. El estado cambia cuando suceden las acciones. Cuando ocurren acciones, el estado se actualiza.
El enlace de datos unidireccional nos proporciona algunas ventajas clave. Me gusta:
- Más fácil de depurar, ya que sabemos qué datos provienen de dónde.
- Menos propenso a errores, ya que tenemos más control sobre nuestros datos.
- Más eficiente, ya que la biblioteca sabe cuáles son los límites de cada parte del sistema.
En React, un estado siempre es propiedad de un componente. Cualquier cambio realizado por este estado solo puede afectar los componentes debajo de él, es decir, sus hijos. El cambio de estado en un componente nunca afectará a su padre o a sus hermanos, solo los hijos se verán afectados. Esta es la razón principal por la que el estado a menudo se mueve hacia arriba en el árbol de componentes para que pueda compartirse entre los componentes que necesitan acceder a él.