Props In React | asadmukhtar.info
Step-by-Step Guide to Setting Up Authentication in Laravel 12 with Breeze   |   Manual Authentication in Laravel 12: Step-by-Step Guide   |   How to Build a REST API in Laravel 12 with Sanctum   |   Laravel 12 CRUD Application with Image Upload   |   Laravel 12 Multi-Auth System: Admin & User Login   |   How to Integrate Stripe Payment Gateway in Laravel 12   |   Building a Role-Based Access Control (RBAC) in Laravel 12   |   How to Use Laravel 12 Queues and Jobs for Background Tasks   |   Laravel 12 Livewire CRUD Example with Validation   |   Email Verification and Password Reset in Laravel 12   |   How to Use Laravel 12 API with Vue.js 3   |   Laravel 12 AJAX CRUD with jQuery and Bootstrap   |   Laravel 12 Multi-Language Website Setup   |   React Best Practices for 2025: Performance, SEO, and Scalability   |   How to Build a Full-Stack MERN App: A Step-by-Step Guide   |   React State Management: Redux vs. Context API vs. Recoil   |   Server-Side Rendering (SSR) in React with Next.js for SEO   |   How to Optimize React Apps for Faster Load Times   |   Building a REST API with Node.js and Express for a React App   |   Integrating JWT Authentication in React and Node.js (MERN Stack)   |   Real-time Chat App with React, Node.js, and Socket.io   |   How to Deploy a MERN Stack Application on AWS or Vercel   |   Connecting React Frontend to a Node.js Backend with Axios   |   Laravel Implement Flash Messages Example   |   How to integrate Angular 19 with Node.js and Express for full-stack development   |   Best practices for connecting Angular 19 frontend with Laravel API   |   Step-by-step guide to upgrading an existing project to Angular 19   |   How to implement authentication in Angular 19 using JWT and Firebase   |   Optimizing server-side rendering in Angular 19 with route-level render modes   |   Using Angular 19 signals for state management in large applications   |   How to create standalone components in Angular 19 for modular architecture   |   Building a CRUD application in Angular 19 with MongoDB and Express   |   Implementing lazy loading in Angular 19 to improve performance   |   How to integrate Angular 19 with GraphQL for efficient data fetching   |   Vue 3 Composition API vs Options API: A Comprehensive Comparison   |   Fetching and Displaying Data from APIs in Vue.js with Axios   |   Building a Todo App in Vue.js with Local Storage Integration   |   Handling Forms and Validation in Vue.js Using VeeValidate   |   State Management in Vue.js Applications Using Vuex   |   10 Most Important Tasks Every MERN Stack Developer Should Master   |   How to Build a Full-Stack CRUD App with MERN Stack   |   Best Practices for Authentication & Authorization in MERN Stack   |   1. MEAN Stack vs. MERN Stack: Which One Should You Choose in 2025   |   Top 10 Node.js Best Practices for Scalable and Secure Applications   |   How to Build a REST API with Laravel and Node.js (Step-by-Step Guide)   |   Mastering Angular and Express.js for Full-Stack Web Development   |   Top 10 Daily Tasks Every Frontend Developer Should Practice   |   Essential Backend Development Tasks to Boost Your Coding Skills   |   Real-World Mini Projects for Practicing React.js Daily   |   Laravel Developer Task List: Beginner to Advanced Challenges   |   How to Assign Effective Tasks to Your Intern Developers   |   10 Must-Try Tasks to Master JavaScript Fundamentals   |   Practical CSS Challenges That Improve Your UI Design Skills   |   Top Tasks to Learn API Integration in React and Angular   |   Best Task Ideas for a 30-Day Web Development Challenge   |   Top Git and GitHub Tasks Every Developer Should Know   |   30-Day Task Plan for Web Development Interns   |   Weekly Task Schedule for Junior Developers in a Startup   |   How to Track Progress with Development Tasks for Interns   |   What Tasks Should You Give to Interns in a MERN Stack Project   |   Build These 5 Projects to Master React Routing   |   Task-Based Learning: Become a Full-Stack Developer in 90 Days   |   Daily Coding Tasks That Will Sharpen Your Logical Thinking   |   Top 7 Backend Task Ideas to Practice With Node.js and MongoDB   |  

1. What are Props in React?

  • Props are read-only and immutable (cannot be changed by the child component).
  • They are passed from parent to child components.
  • Props allow components to be dynamic and reusable.

βœ… Example of Props in Action:

<Greeting name="Zia" />

2. Using Props in Functional Components

Step 1: Create a Child Component (Receiving Props)

πŸ“Œ Example: Greeting.js

import React from "react";

function Greeting(props) {
  return <h2>Hello, {props.name}!</h2>;
}

export default Greeting;

Step 2: Use the Component in App.js (Passing Props)

import Greeting from "./Greeting";

function App() {
  return (
    <div>
      <Greeting name="Zia" />
      <Greeting name="Ali" />
    </div>
  );
}

export default App;

3. Using Props in Class Components

Step 1: Create a Class Component

πŸ“Œ Example: Welcome.js

import React, { Component } from "react";

class Welcome extends Component {
  render() {
    return <h2>Welcome, {this.props.username}!</h2>;
  }
}

export default Welcome;

Step 2: Use the Component in App.js

import Welcome from "./Welcome";

function App() {
  return (
    <div>
      <Welcome username="Zia" />
      <Welcome username="Sarah" />
    </div>
  );
}

export default App;

4. Passing Multiple Props

You can pass multiple props to a component.

πŸ“Œ Example: Passing Multiple Props

function UserInfo(props) {
  return (
    <div>
      <h2>Name: {props.name}</h2>
      <p>Age: {props.age}</p>
      <p>City: {props.city}</p>
    </div>
  );
}

export default UserInfo;

Using the Component in App.js

<UserInfo name="Zia" age="25" city="Lahore" />
<UserInfo name="Ali" age="30" city="Karachi" />

5. Props with Default Values

If a prop is not provided, you can set a default value using defaultProps.

πŸ“Œ Example: Setting Default Props

function Profile(props) {
  return <h2>User: {props.username}</h2>;
}

Profile.defaultProps = {
  username: "Guest",
};

export default Profile;

Using the Component in App.js

<Profile username="Zia" />
<Profile />

6. Props with Destructuring

Instead of using props.name, you can destructure props for cleaner code.

πŸ“Œ Example: Destructuring Props

function Product({ name, price }) {
  return (
    <div>
      <h2>Product: {name}</h2>
      <p>Price: ${price}</p>
    </div>
  );
}

export default Product;

Using the Component in App.js

<Product name="Laptop" price="999" />
<Product name="Phone" price="599" />

7. Passing Functions as Props (Callback Functions)

You can pass functions as props to child components.

πŸ“Œ Example: Passing a Function as a Prop

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

export default Button;

Using the Component in App.js

import Button from "./Button";

function App() {
  const handleClick = () => {
    alert("Button Clicked!");
  };

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

export default App;
import Button from "./Button";

function App() {
  const handleClick = () => {
    alert("Button Clicked!");
  };

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

export default App;

8. Conclusion

  • Props allow data to be passed from parent to child components.
  • They make components reusable and dynamic.
  • Functional & class components both support props.
  • Use defaultProps for fallback values.
  • Destructuring props makes code cleaner.

Props are a fundamental concept in React that help build scalable and modular applications! πŸš€