Code explanation
In the above App.js
file:
Line 5: The App
component (the parent) holds the state variable message
. This state represents data that is passed to the child component.
Lines 7–9: The updateMessage
function changes the message
state when the button (line 14) is clicked. Since React’s state is owned by the parent, it controls how and when the state is updated.
Line 16: The message
state is passed as a prop to the ChildComponent
. Props are read-only in the child, meaning the child cannot modify the message
directly.
When the state is updated, React rerenders the App
and automatically passes the updated message
to ChildComponent
. The child displays the new data, maintaining React’s unidirectional data flow.
Effect of state changes in React components
In React, each state is owned by a single component. Due to the unidirectional data flow, changes made to a component’s state will only affect its children, not its parent or sibling components. In the example above, since the state is owned by the App
component, changes to the message
state only affect App
and ChildComponent
, keeping the component hierarchy organized and interactions clear. This unidirectional data flow architecture ensures predictable state management and minimizes unnecessary data changes.