One-way data flow in React

When using React, you may come across the term "one-way data flow". What does it mean?

One-way data flow is not a concept unique to React, but as a JavaScript developer, this may be the first time you hear it.

Generally, this concept means that there is only one way for data to be transferred to other parts of the application.

In React, this means:

  • State is passed to views and subcomponents
  • Action is triggered by the view
  • Action can update status
  • State changes will be passed to the view and subcomponents


This view is the result of the state of the application. The country can only change when it takes action. When the action occurs, the status is updated.

Thanks to one-way binding, data cannot flow in the opposite way (for example, this happens with two-way binding), which has some key advantages:

  • It is more error-prone because you have more control over the data
  • As you know, it is easier to debugwhatFromwhere is it
  • Because the library already knows the boundaries of each part of the system, it is more efficient

The state is always owned by a component. Any data affected by this state can only affect the components under it: its subcomponents.

Changing the state on a component will never affect its parent, its siblings, or any other components in the application: only its children.

This is why the state is usually moved up in the component tree so that it can be shared among the components that need to access it.

Download mine for freeResponse Handbook

More response tutorials: