Bird
Raised Fist0
Reactframework~8 mins

Using props in JSX in React - Performance & Optimization

Choose your learning style10 modes available
Performance: Using props in JSX
MEDIUM IMPACT
Using props in JSX affects how React components render and update, impacting interaction responsiveness and rendering speed.
Passing props to child components in React
React
function Parent() {
  const data = React.useMemo(() => ({ name: 'Alice' }), []);
  return <Child info={data} />;
}

function Child({ info }) {
  return <div>{info.name}</div>;
}
Using useMemo ensures the prop object reference stays stable, preventing needless re-renders of Child.
📈 Performance GainReduces re-renders to only when data changes, improving INP and CPU efficiency.
Passing props to child components in React
React
function Parent() {
  const data = { name: 'Alice' };
  return <Child info={{ ...data }} />;
}

function Child({ info }) {
  return <div>{info.name}</div>;
}
Creating a new object inline for props causes Child to re-render every time Parent renders, even if data is unchanged.
📉 Performance CostTriggers unnecessary re-renders, increasing CPU usage and slowing interaction responsiveness.
Performance Comparison
PatternDOM OperationsReflowsPaint CostVerdict
Inline new object propsMultiple due to re-rendersMultiple reflows triggeredHigher paint cost due to frequent updates[X] Bad
Memoized stable propsMinimal DOM updatesSingle or minimal reflowsLower paint cost with fewer updates[OK] Good
Rendering Pipeline
When props change, React compares new and old props to decide if a component should re-render. Unstable prop references cause React to re-render components unnecessarily, increasing layout and paint work.
→Reconciliation
→Render
→Layout
→Paint
⚠️ BottleneckReconciliation stage due to frequent unnecessary re-renders
Core Web Vital Affected
INP
Using props in JSX affects how React components render and update, impacting interaction responsiveness and rendering speed.
Optimization Tips
1Avoid creating new object or array literals inline when passing props.
2Use React.useMemo or React.useCallback to memoize props and callbacks.
3Use React DevTools Profiler to identify unnecessary re-renders.
Performance Quiz - 3 Questions
Test your performance knowledge
What causes unnecessary re-renders when passing props in React?
AUsing React.memo on child components
BPassing primitive values like strings or numbers
CPassing new object or array literals inline as props
DAvoiding props altogether
DevTools: React DevTools Profiler
How to check: Record a profiling session while interacting with the component, then inspect which components re-render and how often.
What to look for: Look for unnecessary re-renders of child components when props have not meaningfully changed.

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