In React, “props” is short for “properties,” and it’s a fundamental concept that allows you to pass data from a parent component to a child component.
Props are read-only, which means that a child component can receive data through props, but it cannot modify or change the data it receives.
Passing Props
You can pass props using this syntax
<ComponentName attributeName = value />
Accessing Props
If you can access props in the function component using this syntax
props.attributeName
If you can access props in the class component using this syntax
this.props.attributeName
Now let’s see these syntaxes in the examples with function and class components one by one
Props in React JS
You can use the props in the function component and class component. But both components use props in different ways. So, you should learn the following topics separately
Function Component with Props
In React, function components are a simple way to write components that only contain a render method and don’t have their own state.
They accept a single “props” (which stands for properties) object argument with data and return React elements describing what should appear on the screen.
Example
Pass props from the Developer component to the DeveloperProfile component
// Developer.js
import React from 'react';
import DeveloperProfile from './DeveloperProfile';
const Developer = () => {
const developerData = {
name: 'John Doe',
title: 'Frontend Developer',
experience: '5 years',
};
return (
<div>
<h1>Developer Profile</h1>
<DeveloperProfile developer={developerData} />
</div>
);
};
export default Developer;
Access props in the DeveloperProfile component
// DeveloperProfile.js
import React from 'react';
const DeveloperProfile = (props) => {
const { name, title, experience } = props.developer;
return (
<div>
<h2>{name}</h2>
<p>Title: {title}</p>
<p>Experience: {experience}</p>
</div>
);
};
export default DeveloperProfile;
Class Component with Props
Passing props to a class component in React is done when you render the component within another component. You specify the props as attributes when rendering the component, and then the props are accessible within the class component via this.props. Here’s how you can pass and access props in a class component:
Example –
Pass props from the Developer component to the DeveloperProfile component
// Developer.js
import React, { Component } from 'react';
import DeveloperProfile from './DeveloperProfile';
class Developer extends Component {
render() {
const developerData = {
name: 'John Doe',
title: 'Frontend Developer',
experience: '5 years',
};
return (
<div>
<h1>Developer Profile</h1>
<DeveloperProfile developer={developerData} />
</div>
);
}
}
export default Developer;
Access props in the DeveloperProfile component
// DeveloperProfile.js
import React, { Component } from 'react';
class DeveloperProfile extends Component {
render() {
const { name, title, experience } = this.props.developer;
return (
<div>
<h2>{name}</h2>
<p>Title: {title}</p>
<p>Experience: {experience}</p>
</div>
);
}
}
export default DeveloperProfile;
Summary
In this example, the Developer component renders the DeveloperProfile component and passes the developerData object as a prop. The DeveloperProfile component then uses this prop to display the developer’s information. The props argument in the DeveloperProfile component contains all the properties passed from the parent component.
When the Developer component is rendered, it will display the Developer’s profile details as specified in the developerData object. The DeveloperProfile component receives the developerData object as a prop and displays the developer’s name, title, and experience.