
Now `squares` is unchanged, but `nextSquares` first element is 'X' rather than `null`

In the end the user sees that the upper left square has changed from empty to having a X after clicking it. This causes the value prop of the Square component with index 0 to change from null to X.

Keeping the state of all squares in the Board component will allow it to determine the winner in the future. When the Board’s state changes, both the Board component and every child Square re-renders automatically.

When clicking on a Square, the child Square component now asks the parent Board component to update the state of the board. Now that your state handling is in the Board component, the parent Board component passes props to the child Square components so that they can be displayed correctly.
