-
Overview
4 Lecutre- What Is React?
- Inspecting the Starter Code
-
Passing Data Through Props
-
Making an Interactive Component
-
Completing the Game
3 Lecutre-
Lifting State Up
-
Why Immutability Is Important
- Function Components
-
-
Adding Time Travel
3 Lecutre-
Storing a History of Moves
-
Lifting State Up, Again
-
Showing the Past Moves
-
Inspecting the Starter Code
If you’re going to work on the tutorial in your browser, open this code in a new tab: Starter Code. If you’re going to work on the tutorial locally, instead open src/index.js
in your project folder (you have already touched this file during the setup).
This Starter Code is the base of what we’re building. We’ve provided the CSS styling so that you only need to focus on learning React and programming the tic-tac-toe game.
By inspecting the code, you’ll notice that we have three React components:
- Square
- Board
- Game
The Square component renders a single <button>
and the Board renders 9 squares. The Game component renders a board with placeholder values which we’ll modify later. There are currently no interactive components.
Passing Data Through Props
To get our feet wet, let’s try passing some data from our Board component to our Square component.
We strongly recommend typing code by hand as you’re working through the tutorial and not using copy/paste. This will help you develop muscle memory and a stronger understanding.
In Board’s renderSquare
method, change the code to pass a prop called value
to the Square:
class Board extends React.Component {
renderSquare(i) {
return <Square value={i} />;
}
Change Square’s render
method to show that value by replacing {/* TODO */}
with {this.props.value}
:
class Square extends React.Component {
render() {
return (
<button className="square">
{this.props.value}
</button>
);
}
}
Before:
After: You should see a number in each square in the rendered output.
View the full code at this point
Congratulations! You’ve just “passed a prop” from a parent Board component to a child Square component. Passing props is how information flows in React apps, from parents to children.