Paridhi SolutionsBlog
React

React Props Explained (Complete Beginner's Guide)

Learn React Props from scratch. Pass data between components, use children, default props, destructuring, and understand Props vs State.

Paridhi Solutions
2026-07-03
10 min read read
React Props Explained (Complete Beginner's Guide)

React Props Explained

Components become truly powerful when they can communicate with each other.

Imagine building an e-commerce website.

Every product card looks similar, but each one displays different information such as the product name, price, image, and rating.

Instead of creating separate components for every product, React allows you to reuse the same component while displaying different data.

This is possible using Props.

Props are one of React's core concepts and are used in almost every React application.

In this guide, you'll learn what props are, how they work, how to pass data between components, and the best practices for using them effectively.


What are Props?

Props is short for Properties.

Props allow one component to pass data to another component.

Think of props as function arguments.

Just as a JavaScript function accepts parameters, a React component accepts props.

Example:

jsx
function Welcome(props) {
  return (
    <h1>Hello {props.name}</h1>
  );
}

Using the component:

jsx
<Welcome name="John" />

Output:

text
Hello John

Now reuse it:

jsx
<Welcome name="Alex" />

<Welcome name="Sophia" />

<Welcome name="Michael" />

Outputs:

text
Hello Alex

Hello Sophia

Hello Michael

The same component displays different content depending on the props it receives.


Why Do We Need Props?

Without props, every component would display fixed content.

Example:

jsx
function ProductCard() {
  return (
    <h2>Wireless Mouse</h2>
  );
}

If your store has 500 products, you would need 500 different components.

That's inefficient.

Using props:

jsx
function ProductCard(props) {
  return (
    <h2>{props.name}</h2>
  );
}

Now:

jsx
<ProductCard name="Wireless Mouse" />

<ProductCard name="Mechanical Keyboard" />

<ProductCard name="Gaming Headset" />

One component works for every product.


How Props Work

The flow is simple.

text
Parent Component



Passes Props



Child Component



Displays Data

The parent sends information.

The child receives and displays it.


Parent Component

Example:

jsx
import UserCard from "./UserCard";

function App() {
  return (
    <UserCard
      name="John"
      profession="Frontend Developer"
    />
  );
}

export default App;

Child Component

jsx
function UserCard(props) {
  return (
    <>
      <h2>{props.name}</h2>

      <p>{props.profession}</p>
    </>
  );
}

export default UserCard;

Output:

text
John

Frontend Developer

This is the most common way components communicate in React.


Passing Multiple Props

Components can receive multiple values.

Example:

jsx
<ProductCard
    name="Laptop"
    price={999}
    stock={25}
    rating={4.8}
/>

Receiving them:

jsx
function ProductCard(props) {
  return (
    <>
      <h2>{props.name}</h2>

      <p>${props.price}</p>

      <p>Stock: {props.stock}</p>

      <p>{props.rating}</p>
    </>
  );
}

Props can contain almost any JavaScript value.


Props Can Be Different Data Types

React props aren't limited to strings.

They can contain:

Strings

jsx
name="John"

Numbers

jsx
price={999}

Booleans

jsx
isAdmin={true}

Arrays

jsx
items={["Apple","Orange"]}

Objects

jsx
user={{
    name:"John",
    age:28
}}

Functions

jsx
onClick={handleClick}

This flexibility makes props suitable for almost every type of data.

Destructuring Props

Writing props.name, props.price, and props.rating repeatedly can make your code harder to read.

JavaScript allows you to destructure props.

Instead of:

jsx
function ProductCard(props) {
  return (
    <>
      <h2>{props.name}</h2>

      <p>${props.price}</p>

      <p>{props.rating}</p>
    </>
  );
}

Use:

jsx
function ProductCard({
  name,
  price,
  rating
}) {
  return (
    <>
      <h2>{name}</h2>

      <p>${price}</p>

      <p>{rating}</p>
    </>
  );
}

This approach is cleaner and is widely used in modern React applications.


Passing Objects as Props

Sometimes you need to pass an entire object instead of multiple individual values.

Parent Component:

jsx
const product = {
  name: "Laptop",
  price: 999,
  rating: 4.8
};

<ProductCard product={product} />

Child Component:

jsx
function ProductCard({ product }) {
  return (
    <>
      <h2>{product.name}</h2>

      <p>${product.price}</p>

      <p>{product.rating}</p>
    </>
  );
}

Passing objects keeps related data together and simplifies component usage.


Passing Arrays as Props

Arrays can also be passed to components.

Parent Component:

jsx
const fruits = [
  "Apple",
  "Orange",
  "Banana"
];

<FruitList fruits={fruits} />

Child Component:

jsx
function FruitList({ fruits }) {
  return (
    <ul>
      {fruits.map((fruit) => (
        <li key={fruit}>
          {fruit}
        </li>
      ))}
    </ul>
  );
}

Output:

text
• Apple

• Orange

• Banana

Passing Functions as Props

Props can even contain functions.

This allows child components to communicate back to the parent.

Parent Component:

jsx
function App() {

  function showMessage() {
    alert("Button Clicked!");
  }

  return (
    <Button onClick={showMessage} />
  );
}

Child Component:

jsx
function Button({ onClick }) {
  return (
    <button onClick={onClick}>
      Click Me
    </button>
  );
}

When the button is clicked, the parent's function is executed.

This technique is used extensively in React applications.


The children Prop

Every React component automatically receives a special prop called children.

It represents everything placed between the opening and closing tags of a component.

Example:

jsx
<Card>

  <h2>Welcome</h2>

  <p>This is inside the card.</p>

</Card>

Component:

jsx
function Card({ children }) {
  return (
    <div className="card">
      {children}
    </div>
  );
}

Output:

text
+-----------------------+

Welcome

This is inside the card.

+-----------------------+

The children prop is commonly used for layouts, cards, modals, and reusable UI components.


Default Props

Sometimes a prop may not be provided.

You can define a default value.

Example:

jsx
function Welcome({
  name = "Guest"
}) {
  return (
    <h1>
      Welcome {name}
    </h1>
  );
}

Usage:

jsx
<Welcome />

Output:

text
Welcome Guest

Providing sensible defaults makes components more robust.


Props Are Read-Only

Props should never be modified inside a component.

Incorrect:

jsx
function User(props) {

  props.name = "John";

}

React treats props as immutable.

If data needs to change, it should usually be managed by the parent component and passed down again through props.


One-Way Data Flow

React follows a one-way data flow.

text
Parent Component



      Props



Child Component

Data always flows from the parent to the child.

This predictable structure makes React applications easier to understand and debug.


Props vs State

Although props and state both hold data, they serve different purposes.

PropsState
Passed from parentManaged inside component
Read-onlyCan be updated
Used for communicationUsed for local component data
Controlled externallyControlled internally

Example:

A shopping cart component may receive the user's name through props, while it stores the selected quantity using state.

Understanding this difference is essential before learning the useState Hook.


Real-World Example

Consider a blog website.

Instead of creating separate article cards:

text
Article One

Article Two

Article Three

Create one reusable component.

jsx
<ArticleCard
    title="React Props Explained"
    author="Paridhi Solutions"
    readingTime="10 min"
/>

<ArticleCard
    title="JSX Explained"
    author="Paridhi Solutions"
    readingTime="8 min"
/>

The same component displays completely different content depending on the props it receives.

This is one of the biggest advantages of component-based development.


Best Practices

Use Destructuring

Prefer:

jsx
function User({
  name,
  age
}) {}

Instead of:

jsx
function User(props) {}

when multiple props are used.


Keep Props Simple

Pass only the data a component actually needs.

Avoid passing large objects if only one or two values are required.


Use Meaningful Prop Names

Good examples:

text
productName

userEmail

isLoggedIn

orderTotal

Clear names make components easier to understand.


Keep Components Reusable

Avoid hardcoding values.

Instead of:

jsx
<h2>John</h2>

Use:

jsx
<h2>{name}</h2>

This allows the component to be reused in many different situations.


Common Beginner Mistakes

Forgetting Curly Braces

Incorrect:

jsx
price="999"

Correct:

jsx
price={999}

Modifying Props

Props are read-only and should never be changed inside a component.


Passing Too Many Props

If a component requires dozens of props, consider grouping related values into an object.

This often results in cleaner and more maintainable code.

Frequently Asked Questions

What are Props in React?

Props (short for Properties) are used to pass data from one component to another.

They allow components to become reusable by displaying different data without changing the component itself.


Are Props Read-Only?

Yes.

Props are immutable, which means a child component should never modify them.

If the data needs to change, the parent component should update it and pass the new value through props.


Can Props Store Functions?

Yes.

Functions are commonly passed as props so child components can notify the parent when something happens, such as a button click or form submission.

Example:

jsx
<Button onClick={handleClick} />

Can Props Store Objects and Arrays?

Absolutely.

Props can store almost any JavaScript value, including:

  • Strings
  • Numbers
  • Booleans
  • Arrays
  • Objects
  • Functions

This flexibility makes props suitable for almost every application.


What is the children Prop?

children is a special React prop that represents everything placed between the opening and closing tags of a component.

Example:

jsx
<Card>

    <h2>React Props</h2>

</Card>

The <h2> element becomes the children prop inside the Card component.


What is the Difference Between Props and State?

Props are passed from a parent component.

State belongs to the component itself and can change over time.

Think of it this way:

  • Props = Information received from another component.
  • State = Information managed by the current component.

Summary

In this guide, you learned:

  • What Props are
  • Why Props are important
  • Passing data between components
  • Passing multiple props
  • Passing objects and arrays
  • Passing functions
  • Using the children prop
  • Default values
  • Destructuring props
  • One-way data flow
  • Props vs State
  • Best practices
  • Common beginner mistakes

Props are one of the core building blocks of React and are used in nearly every application.

Once you understand props, you'll find it much easier to build reusable and maintainable components.


Conclusion

Congratulations! 🎉

You now understand how React components communicate using Props.

Props allow developers to build flexible, reusable, and maintainable components by passing data from parent components to child components.

As your applications grow, you'll use props to share information between components, render dynamic content, and build reusable UI elements.

The next major concept you'll learn is State, which allows components to manage and update their own data.

Together, Props and State form the foundation of React application development.


Continue the React Learning Path

Continue with the next guide:

  • ✅ What is React?
  • ✅ Install React with Vite
  • ✅ React Project Structure Explained
  • ✅ JSX Explained
  • ✅ React Components Explained
  • ✅ React Props Explained
  • ➜ React State Explained
  • useState Hook
  • Event Handling
  • Conditional Rendering
  • Lists & Keys
  • Forms
  • useEffect Hook
  • React Router
  • API Integration

Each article builds on the previous one, helping you progress from beginner to advanced React development.


Need Professional React Development?

Whether you're building a startup MVP, a business dashboard, or a scalable web application, Paridhi Solutions can help.

Our React development services include:

  • React.js Development
  • Next.js Development
  • Custom Web Applications
  • Admin Dashboard Development
  • REST API & GraphQL Integration
  • Performance Optimization
  • UI/UX Development
  • Ongoing Maintenance & Support

🌐 Website: https://paridhisolutions.com

📧 Email: info@paridhisolutions.com

If this guide helped you, consider bookmarking it and sharing it with your team or fellow developers.

Tags

ReactPropsJavaScript

Written by

Paridhi Solutions

Publishing in-depth tutorials, coding guides, and best practices for modern web development.

Visit Website →

Share this article

Related Articles