Bird
Raised Fist0
Reactframework~3 mins

Why Using props in JSX in React? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

Discover how a tiny change in your code can save hours of repetitive work!

The Scenario

Imagine you want to show a list of friends on a webpage, and for each friend, you write separate HTML code with their name and picture manually.

The Problem

Writing separate HTML for each friend is slow, repetitive, and if you want to change the layout, you must update every single place manually, which is easy to forget or mess up.

The Solution

Using props in JSX lets you create one reusable component that takes different data (props) and shows it correctly, so you write less code and can update the design in one place.

Before vs After
✗ Before
<Friend name="Alice" picture="alice.jpg" />
<Friend name="Bob" picture="bob.jpg" />
<Friend name="Carol" picture="carol.jpg" />
✓ After
const friends = [{name: 'Alice', picture: 'alice.jpg'}, {name: 'Bob', picture: 'bob.jpg'}, {name: 'Carol', picture: 'carol.jpg'}];
friends.map(f => <Friend key={f.name} name={f.name} picture={f.picture} />)
What It Enables

You can build flexible, reusable UI pieces that adapt to different data easily and keep your code clean and simple.

Real Life Example

Think of a social media app showing posts: each post looks the same but shows different text and images. Props let the app reuse the post layout for every user's content.

Key Takeaways

Manual HTML for each item is repetitive and error-prone.

Props let components receive data to display dynamically.

This makes UI code reusable, easier to maintain, and scalable.

Practice

(1/5)
1. What is the main purpose of props in React components?
easy
A. To handle user events like clicks
B. To store internal state within a component
C. To style components with CSS
D. To pass data from a parent component to a child component

Solution

  1. Step 1: Understand the role of props

    Props are used to send data from a parent component to a child component in React.
  2. Step 2: Differentiate props from other concepts

    State stores internal data, events handle user actions, and CSS styles components, but props specifically pass data down.
  3. Final Answer:

    To pass data from a parent component to a child component -> Option D
  4. Quick Check:

    Props = Data passing [OK]
Hint: Props always send data from parent to child [OK]
Common Mistakes:
  • Confusing props with state
  • Thinking props handle events
  • Believing props style components
2. Which of the following is the correct way to use a prop named title inside JSX?
easy
A. <h1>title</h1>
B. <h1>{title}</h1>
C. <h1>{props.title}</h1>
D. <h1>$title</h1>

Solution

  1. Step 1: Use curly braces to embed prop values in JSX

    In JSX, to show a prop value, you wrap the prop access in curly braces like {props.title}.
  2. Step 2: Understand context of prop usage

    The props object is passed to the component function, so access via {props.title}. Using {title} requires destructuring like function Comp({title}).
  3. Final Answer:

    <h1>{props.title}</h1> -> Option C
  4. Quick Check:

    Curly braces show prop values [OK]
Hint: Use curly braces { } to show props in JSX [OK]
Common Mistakes:
  • Writing prop name as plain text without braces
  • Using $ sign like in other languages
  • Using {title} without destructuring the props object
3. Given the component:
function Greeting(props) {
  return <h2>Hello, {props.name}!</h2>;
}

// Usage:
<Greeting name="Alice" />

What will be rendered on the screen?
medium
A.

Hello, {name}!

B.

Hello, Alice!

C.

Hello, props.name!

D. SyntaxError

Solution

  1. Step 1: Identify how props are passed and used

    The Greeting component receives a prop called name with value "Alice".
  2. Step 2: Understand JSX rendering with props

    The JSX uses {props.name} which inserts the string "Alice" inside the <h2> tag.
  3. Final Answer:

    <h2>Hello, Alice!</h2> -> Option B
  4. Quick Check:

    props.name = Alice [OK]
Hint: Props values appear inside curly braces in JSX output [OK]
Common Mistakes:
  • Expecting literal text {name} instead of value
  • Confusing props.name with string 'props.name'
  • Thinking this causes syntax error
4. What is wrong with this React component code?
function Welcome(props) {
  return <h1>Welcome, props.name!</h1>;
}
medium
A. props.name should be inside curly braces to render its value
B. Function name should be lowercase
C. Missing return statement
D. JSX tags must be self-closing

Solution

  1. Step 1: Check how props are used inside JSX

    The code writes props.name as plain text inside JSX, so it will render literally instead of the prop value.
  2. Step 2: Correct usage of props in JSX

    To show the value of props.name, it must be wrapped in curly braces like {props.name}.
  3. Final Answer:

    props.name should be inside curly braces to render its value -> Option A
  4. Quick Check:

    Use {props.name} to show prop value [OK]
Hint: Always wrap props in { } inside JSX [OK]
Common Mistakes:
  • Writing props.name as plain text
  • Thinking function names must be lowercase
  • Confusing JSX self-closing rules
5. You want to create a reusable Button component that shows different text based on a label prop. Which code correctly uses props to achieve this?
function Button(props) {
  return <button>???</button>;
}

Choose the correct replacement for ???.
hard
A. {props.label}
B. {label}
C. "props.label"
D. label

Solution

  1. Step 1: Understand how to access props inside the component

    The component receives props as an object, so the label prop is accessed as props.label.
  2. Step 2: Use curly braces to embed the prop value in JSX

    To show the value inside JSX, wrap props.label in curly braces: {props.label}.
  3. Final Answer:

    {props.label} -> Option A
  4. Quick Check:

    Use {props.propName} to show prop value [OK]
Hint: Use {props.propName} inside JSX to show prop values [OK]
Common Mistakes:
  • Using prop name without braces
  • Using braces without props object
  • Using quotes around prop name
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard