DEV Community

Sravanthi
Sravanthi

Posted on

Understanding Props in React

Introduction

After learning conditional rendering, I started wondering how React components share data with each other.

For example, suppose I have a Welcome component.

Instead of hardcoding the same text every time, how can I display a different name for each user?

The answer is props.

Props allow a parent component to pass data to a child component, making components more reusable and flexible.

In this article, I'll explain what props are, how they work, and when to use them.

What are Props?

Props is short for properties.

Props are used to pass data from a parent component to a child component.

In React, data flows from a parent component to a child component through props.

Think of props like function parameters.

Just as a function accepts values as parameters, a React component accepts values through props.

Parent → Child Data Flow

Props flow in one direction — from a parent component to a child component.

  • Parent sends data.
  • Child receives and displays it.
  • Child cannot change the props.
Parent Component
       │
       │ props
       ▼
Child Component
Enter fullscreen mode Exit fullscreen mode

Passing a Single Prop

Parent Component

function App() {
  return <Welcome name="Srav" />;
}
Enter fullscreen mode Exit fullscreen mode

Child Component

function Welcome(props) {
  return <h1>Hello {props.name}</h1>;
}
Enter fullscreen mode Exit fullscreen mode

Output

Hello Srav
Enter fullscreen mode Exit fullscreen mode

Passing Multiple Props

Parent

function App() {
  return (
    <Welcome
      name="Srav"
      age={10}
      city="Auckland"
    />
  );
}
Enter fullscreen mode Exit fullscreen mode

Child

function Welcome(props) {
  return (
    <>
      <h2>{props.name}</h2>
      <p>{props.age}</p>
      <p>{props.city}</p>
    </>
  );
}
Enter fullscreen mode Exit fullscreen mode

Output

Srav
10
Auckland
Enter fullscreen mode Exit fullscreen mode

Props are Read-only

Props cannot be changed inside the child component.

The parent owns the data.

Wrong

function Welcome(props) {
  props.name = "Srav";
}
Enter fullscreen mode Exit fullscreen mode

Correct

The parent should pass a different value.

<Welcome name="Srav" />
Enter fullscreen mode Exit fullscreen mode

Destructuring Props

Destructuring lets you access props directly without writing props. every time.

Instead of writing:

function Welcome(props) {
  return <h1>{props.name}</h1>;
}
Enter fullscreen mode Exit fullscreen mode

Use destructuring:

function Welcome({ name }) {
  return <h1>{name}</h1>;
}
Enter fullscreen mode Exit fullscreen mode

For multiple props:

function Welcome({ name, age, city }) {
  return (
    <>
      <h2>{name}</h2>
      <p>{age}</p>
      <p>{city}</p>
    </>
  );
}
Enter fullscreen mode Exit fullscreen mode

Destructuring makes the code shorter, cleaner, and easier to read.

Props vs Variables

Props Variables
Passed from a parent component Declared inside the component or function
Read-only (cannot be modified by the child component) Can be reassigned (if declared with let)
Used to pass data between components Used to store temporary values during execution
Received as function parameters Created using const, let, or var
Changes when the parent passes new values Exist only within the scope where they are declared

Example:

function Welcome({ name }) {

  const country = "New Zealand";

  return (
    <>
      <h2>{name}</h2>
      <p>{country}</p>
    </>
  );
}
Enter fullscreen mode Exit fullscreen mode

Here:

  • name → comes from the parent as a prop.
  • country → is a local variable created inside the component.

Props vs State

Props State
Passed from a parent component Managed inside the component
Read-only Can be updated
Used to pass data Used to store changing data
Received through function parameters Created using useState

We'll explore state in the next article.

When should you use Props?

  • Passing data to child components
  • Making components reusable
  • Customizing UI
  • Sharing information between components
  • Passing event handler functions to child components

Conclusion

Props are one of the fundamental concepts in React because they allow components to communicate with each other.

They make components more reusable by allowing the same component to display different data without changing its internal code.

Understanding how props work is an important step toward building modular and maintainable React applications.

As I continue learning React, I'm seeing how breaking an application into smaller components and passing data through props makes the code much easier to understand and reuse.

Key Takeaways

  • Props are used to pass data from a parent component to a child component.
  • Props are read-only and should not be modified by the child component.
  • Components become more reusable by receiving different props.
  • Props can contain strings, numbers, booleans, objects, arrays, functions, or even JSX.
  • Props help components communicate while keeping responsibilities separate.
  • Props can be destructured to make the code cleaner.

What's Next?

Now that I understand how components receive data through props, the next step is learning how components manage their own changing data using state.

In the next article, I'll explore React state and learn how it allows components to update the UI when data changes.

Thanks for reading, and happy coding!

Top comments (0)