Props, short for properties, are arguments passed into React components. They are similar to function arguments in JavaScript and HTML attributes.
Passing Props to Components
Props are passed to components using HTML-like attributes. In this example, the type
attribute is passed to the Vehicle
component.
const myElement = <Vehicle type="Car" />;
Receiving Props in Components
The component receives the prop as a props
object. Here’s how to use the type
attribute in the component:
function Vehicle(props) { return <h2>This is a {props.type}.</h2>; } export default Vehicle;
Passing Data Between Components
Props can also be used to pass data from one component to another. Here’s an example of passing a type
property from the Garage
component to the Vehicle
component:
function Vehicle(props) { return <h2>This is a {props.type}.</h2>; } function Garage() { return ( <> <h1>What's in the garage?</h1> <Vehicle type="Car" /> </> ); } const root = ReactDOM.createRoot(document.getElementById('root')); root.render(<Garage />);
Using Variables as Props
If you need to pass a variable instead of a string, use curly brackets. Here’s how to send a variable named vehicleType
to the Vehicle
component:
function Vehicle(props) { return <h2>This is a {props.type}.</h2>; } function Garage() { const vehicleType = "Truck"; return ( <> <h1>What's in the garage?</h1> <Vehicle type={vehicleType} /> </> ); } const root = ReactDOM.createRoot(document.getElementById('root')); root.render(<Garage />);
Using Objects as Props
You can also pass an object as a prop. Here’s how to send an object named vehicleInfo
to the Vehicle
component:
function Vehicle(props) { return <h2>This is a {props.info.model}.</h2>; } function Garage() { const vehicleInfo = { name: "Truck", model: "Ford" }; return ( <> <h1>What's in the garage?</h1> <Vehicle info={vehicleInfo} /> </> ); } const root = ReactDOM.createRoot(document.getElementById('root')); root.render(<Garage />);