In React, props (short for "properties") are used to pass information from one component to another. The main purpose of props is to allow a parent component to send data to its child components.
Here are some features of Props:
- Props cannot be modified by the receiving component.
- They are strictly for reading data and should not be altered.
- Props can be updated when the parent component’s state changes.
Note => Props can be used in both functional and class components. With functional components, props are passed as arguments to the function.
Now let's understand this with the help of example:
JavaScript
import React from 'react';
function Greet(props) {
return <h1>Hello, {props.name}!</h1>;
}
function App() {
return <Greet name="Sneha" />;
}
export default App;
Output
What Are Props in React- Greet Component: Accepts props and displays the value of props.name inside an <h1> tag.
- App Component: Renders the Greet component and passes the value "Sneha" to the name prop.
- Output: The Greet component shows the text Hello, Sneha! on the webpage.
How Do Props Work in React?
Here are three steps to using React props:
Define an attribute and its value (data).
Pass it to the child component(s) by using props.
Render
the props data.
Props in ReactLet’s understand the working of props with a basic example.
App.js
import React from 'react';
import Parent from './Parent';
function App() {
return (
<div>
<Parent /> {/* Render the Parent component */}
</div>
);
}
export default App;
Parent.js
import React from 'react';
import Child from './Child';
function Parent() {
return (
<div>
<h1>Welcome to the Parent Component!</h1>
<Child name="Jiya" /> {/* Passing the 'name' prop with value "John" */}
</div>
);
}
export default Parent;
Child.js
import React from 'react';
function Child(props) {
return <h2>Hello, {props.name}!</h2>;
}
export default Child;
Working of PropsIn this example
- App Component (App.js): Renders the Parent component.
- Parent Component (Parent.js): Renders a heading and the Child component and passes the prop name="Jiya" to the Child component.
- Child Component (Child.js): Receives the name prop and displays Hello, Jiya!
Passing Multiple Props
In React, we can pass multiple props to a child component, and each prop can contain different types of data, such as strings, numbers, arrays, or even functions. Let's understand this with the help of example
App.js
import React from 'react';
import Parent from './Parent';
function App() {
const appStyle = {
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
height: '100vh',
margin: 0,
fontFamily: 'Arial, sans-serif',
};
return (
<div style={appStyle}>
<Parent />
</div>
);
}
export default App;
Parent.js
import React from 'react';
import Child from './Child';
function Parent() {
const parentStyle = {
textAlign: 'center',
};
return (
<div style={parentStyle}>
<h1>Welcome to the Parent Component!</h1>
<Child name="Jiya" age={25} city="New York" />
</div>
);
}
export default Parent;
Child.js
import React from 'react';
function Child(props) {
const childStyle = {
marginTop: '20px',
fontSize: '18px',
color: '#333',
};
return (
<div style={childStyle}>
<h2>Hello, {props.name}!</h2>
<p>You are {props.age} years old.</p>
<p>You live in {props.city}.</p>
</div>
);
}
export default Child;
Output
Passing Multiple Props- The Profile component receives name and age as props.
- The data is displayed dynamically in the component.
Passing Functions as Props
We can pass not only data (like strings, numbers, etc.) but also functions from a parent component to a child component using props. This is useful when we want the child component to trigger an action in the parent component.
Parent.js
import React from 'react';
import Child from './Child';
function Parent() {
const handleClick = () => {
alert('Button clicked in Child!');
};
return <Child onClick={handleClick} />;
}
export default Parent;
Child.js
import React from 'react';
function Child(props) {
return <button onClick={props.onClick}>Click Me!</button>;
}
export default Child;
App.js
import React from 'react';
import Parent from './Parent';
function App() {
return (
<div>
<Parent />
</div>
);
}
export default App;
In this example
- App.js renders Parent.
- Parent defines handleClick and passes it as onClick to Child.
- Child calls the onClick function when the button is clicked.
How to Set a Default Value for Props
In React, defaultProps is a special property that allows us to set default values for props. This is useful when no value is passed for a prop, ensuring the component still works with a fallback value.
Greeting Component
import React from 'react';
function Greeting(props) {
return <h1>Hello, {props.name}!</h1>;
}
Greeting.defaultProps = {
name: 'Guest',
};
export default Greeting;
app.js
import React from 'react';
import Greeting from './Greeting';
function App() {
return (
<div>
<Greeting />
<Greeting name="Alia" />
</div>
);
}
export default App;
In this example
- Greeting Component: It expects a name prop. If no name is passed, it will use the default value "Guest".
- App Component: The first Greeting component doesn't pass a name, so the default "Guest" is used and the second Greeting component passes the name prop as "Alia", so it will display Hello, Alia!
Destructuring Props in React
In React, props are often passed as an object to the component. Using destructuring, we can extract specific properties from this object and use them directly. This makes accessing props simpler and more concise.
Syntax
function Greeting(props) {
return <h1>Hello, {props.name}!</h1>;
}
For more details follow this article => Destructuring of Props in ReactJS
Unidirectional Flow of Props in React
In React, props (short for properties) are used to pass data from one component to another. The flow of props in React is unidirectional, which means that data flows in only one direction: from parent components to child components.
For more details follow this article => ReactJS Unidirectional Data Flow
Difference Between State vs Prop
Below are the following difference between the state vs prop
State | Prop |
---|
State is a variable that holds local data for a component. | Props are data passed from parent to child components. |
State is mutable and can be changed within the component. | Props are immutable and cannot be modified by the child component. |
Used to manage component-specific data and control reactivity. | Used to pass data between components and customize child components. |
Defined and managed inside the component itself. | Passed from parent component to child components. |
State can be updated using setState() (for class components) or useState() (for functional components). | Props cannot be changed directly; they are read-only. |
State can change during the life cycle of the component. | Props stay the same unless the parent component changes them. |
Example : const [count, setCount] = useState(0); | Example : <Child name="Alice" age={25} /> |
For more details follow this article => What are the differences between props and state
Conclusion
In React, props are used to pass data from a parent to a child component, enabling communication between them. They are immutable, read-only, and flow unidirectionally. Props can hold various data types, including functions, and are essential for building dynamic and reusable components. DefaultProps ensure components work even when no props are passed, and destructuring simplifies accessing prop values. Understanding props and their role helps in managing data flow and building maintainable React applications.
Similar Reads
React Tutorial React is a powerful JavaScript library for building fast, scalable front-end applications. Created by Facebook, it's known for its component-based structure, single-page applications (SPAs), and virtual DOM,enabling efficient UI updates and a seamless user experience.Note: The latest stable version
7 min read
React Fundamentals
React IntroductionReactJS is a component-based JavaScript library used to build dynamic and interactive user interfaces. It simplifies the creation of single-page applications (SPAs) with a focus on performance and maintainability.React.jsWhy Use React?Before React, web development faced issues like slow DOM updates
8 min read
React Environment SetupTo run any React application, we need to first setup a ReactJS Development Environment. In this article, we will show you a step-by-step guide to installing and configuring a working React development environment.Pre-requisite:We must have Nodejs installed on our PC. So, the very first step will be
3 min read
React JS ReactDOMReactDom is a core react package that provides methods to interact with the Document Object Model or DOM. This package allows developers to access and modify the DOM. Let's see in brief what is the need to have the package. Table of ContentWhat is ReactDOM ?How to use ReactDOM ?Why ReactDOM is used
3 min read
React JSXJSX stands for JavaScript XML, and it is a special syntax used in React to simplify building user interfaces. JSX allows you to write HTML-like code directly inside JavaScript, enabling you to create UI components more efficiently. Although JSX looks like regular HTML, itâs actually a syntax extensi
6 min read
ReactJS Rendering ElementsIn this article we will learn about rendering elements in ReactJS, updating the rendered elements and will also discuss about how efficiently the elements are rendered.What are React Elements?React elements are the smallest building blocks of a React application. They are different from DOM elements
3 min read
React ListsReact Lists are used to display a collection of similar data items like an array of objects and menu items. It allows us to dynamically render the array elements and display repetitive data.Rendering List in ReactTo render a list in React, we will use the JavaScript array map() function. We will ite
5 min read
React FormsForms are an essential part of any application used for collecting user data, processing payments, or handling authentication. React Forms are the components used to collect and manage the user inputs. These components include the input elements like text field, check box, date input, dropdowns etc.
5 min read
ReactJS KeysA key serves as a unique identifier in React, helping to track which items in a list have changed, been updated, or removed. It is particularly useful when dynamically creating components or when users modify the list. In this article, we'll explore ReactJS keys, understand their importance, how the
5 min read
Components in React
React ComponentsIn React, React components are independent, reusable building blocks in a React application that define what gets displayed on the UI. They accept inputs called props and return React elements describing the UI.In this article, we will explore the basics of React components, props, state, and render
4 min read
ReactJS Functional ComponentsIn ReactJS, functional components are a core part of building user interfaces. They are simple, lightweight, and powerful tools for rendering UI and handling logic. Functional components can accept props as input and return JSX that describes what the component should render.What are Reactjs Functio
5 min read
React Class ComponentsClass components are ES6 classes that extend React.Component. They allow state management and lifecycle methods for complex UI logic.Used for stateful components before Hooks.Support lifecycle methods for mounting, updating, and unmounting.The render() method in React class components returns JSX el
4 min read
ReactJS Pure ComponentsReactJS Pure Components are similar to regular class components but with a key optimization. They skip re-renders when the props and state remain the same. While class components are still supported in React, it's generally recommended to use functional components with hooks in new code for better p
4 min read
ReactJS Container and Presentational Pattern in ComponentsIn this article we will categorise the react components in two types depending on the pattern in which they are written in application and will learn briefly about these two categories. We will also discuss about alternatives to this pattern. Presentational and Container ComponentsThe type of compon
2 min read
ReactJS PropTypesIn ReactJS PropTypes are the property that is mainly shared between the parent components to the child components. It is used to solve the type validation problem. Since in the latest version of the React 19, PropeTypes has been removed. What is ReactJS PropTypes?PropTypes is a tool in React that he
5 min read
React Lifecycle In React, the lifecycle refers to the various stages a component goes through. These stages allow developers to run specific code at key moments, such as when the component is created, updated, or removed. By understanding the React lifecycle, you can better manage resources, side effects, and perfo
7 min read
React Hooks
Routing in React
Advanced React Concepts
React Projects