Bird
Raised Fist0
Reactframework~8 mins

Rendering elements in React - Performance & Optimization

Choose your learning style10 modes available
Performance: Rendering elements
MEDIUM IMPACT
This affects how fast the page shows content and how smoothly it updates when users interact.
Rendering a list of items in React
React
function List({ items }) {
  return items.map(item => <div key={item.id}>{item.name}</div>);
}
Using stable keys lets React update only changed elements, reducing DOM operations.
📈 Performance GainReduces re-renders and repaints, improving interaction speed and LCP.
Rendering a list of items in React
React
function List({ items }) {
  return items.map(item => <div>{item.name}</div>);
}
No unique keys on elements cause React to re-render all items on any change.
📉 Performance CostTriggers full list re-render and multiple DOM updates, increasing paint time.
Performance Comparison
PatternDOM OperationsReflowsPaint CostVerdict
Rendering list without keysMany nodes updatedMultiple reflowsHigh paint cost[X] Bad
Rendering list with keysMinimal nodes updatedSingle reflowLow paint cost[OK] Good
Rendering Pipeline
React creates virtual elements, compares them to previous ones, then updates the real DOM only where needed.
→Virtual DOM diffing
→DOM Updates
→Paint
→Composite
⚠️ BottleneckDOM Updates stage is most expensive due to layout recalculations and painting.
Core Web Vital Affected
LCP, INP
This affects how fast the page shows content and how smoothly it updates when users interact.
Optimization Tips
1Always use unique keys when rendering lists to help React optimize updates.
2Avoid rendering elements that are not visible or needed to reduce DOM size.
3Use React.memo or similar techniques to prevent re-rendering unchanged components.
Performance Quiz - 3 Questions
Test your performance knowledge
What is the main benefit of using keys when rendering lists in React?
AIt reduces the bundle size by removing unused code.
BIt prevents the browser from loading images multiple times.
CIt helps React identify which items changed to update only those.
DIt automatically caches the list data on the server.
DevTools: React DevTools and Chrome Performance panel
How to check: Use React DevTools to inspect component re-renders; record performance to see paint and layout times.
What to look for: Look for excessive re-renders and long layout or paint durations indicating inefficient rendering.

Practice

(1/5)
1. What does rendering elements in React mean?
easy
A. Managing database connections
B. Writing CSS styles for components
C. Creating backend APIs
D. Showing content on the screen using React components

Solution

  1. Step 1: Understand rendering in React

    Rendering means React creates and shows elements on the screen for users to see.
  2. Step 2: Identify the correct description

    Only showing content on the screen matches rendering elements, not styling or backend tasks.
  3. Final Answer:

    Showing content on the screen using React components -> Option D
  4. Quick Check:

    Rendering = Showing content [OK]
Hint: Rendering means displaying content on screen [OK]
Common Mistakes:
  • Confusing rendering with styling
  • Thinking rendering means backend work
  • Mixing rendering with database tasks
2. Which of the following is the correct way to render a simple React element?
easy
A. ReactDOM.render(<h1>Hello</h1>, document.getElementById('root'));
B. React.render(<h1>Hello</h1>, 'root');
C. ReactDOM.render('Hello', document.getElementById('root'));
D. ReactDOM.render(<h1>Hello</h1>);

Solution

  1. Step 1: Recall ReactDOM.render syntax

    The correct syntax requires ReactDOM.render(element, container), where container is a DOM node.
  2. Step 2: Check each option

    ReactDOM.render(<h1>Hello</h1>, document.getElementById('root')); uses ReactDOM.render with JSX element and document.getElementById('root'), which is correct.
  3. Final Answer:

    ReactDOM.render(<h1>Hello</h1>, document.getElementById('root')); -> Option A
  4. Quick Check:

    ReactDOM.render(element, container) = ReactDOM.render(<h1>Hello</h1>, document.getElementById('root')); [OK]
Hint: ReactDOM.render needs element and container node [OK]
Common Mistakes:
  • Using React.render instead of ReactDOM.render
  • Passing string instead of JSX element
  • Omitting container DOM node
3. What will be displayed on the screen after running this React code?
const element = <h2>Welcome to React!</h2>;
ReactDOM.render(element, document.getElementById('root'));
medium
A. A plain text 'element' string
B. An <h2> heading with text 'Welcome to React!'
C. Nothing, because of a syntax error
D. An empty page with no content

Solution

  1. Step 1: Understand JSX element creation

    The variable 'element' holds an <h2> JSX element with text 'Welcome to React!'.
  2. Step 2: ReactDOM.render displays the element

    ReactDOM.render inserts this <h2> element inside the DOM node with id 'root', showing the heading on screen.
  3. Final Answer:

    An <h2> heading with text 'Welcome to React!' -> Option B
  4. Quick Check:

    JSX element renders as HTML heading [OK]
Hint: JSX inside render shows as HTML element [OK]
Common Mistakes:
  • Thinking JSX is a string
  • Expecting no output due to misunderstanding JSX
  • Confusing variable name with output
4. Identify the error in this React rendering code:
const element = <h1>Hello World</h1>
ReactDOM.render(element, document.getElementById('root'));
medium
A. No error, code runs correctly
B. document.getElementById('root') is undefined
C. Missing semicolon after JSX element declaration
D. JSX element must be wrapped in parentheses

Solution

  1. Step 1: Check JSX element syntax

    The JSX element is correctly assigned to 'element' variable; semicolon is optional in JavaScript.
  2. Step 2: Verify ReactDOM.render usage

    ReactDOM.render is called with valid arguments; assuming 'root' exists in HTML, no error occurs.
  3. Final Answer:

    No error, code runs correctly -> Option A
  4. Quick Check:

    Valid JSX and render call = No error, code runs correctly [OK]
Hint: JSX semicolon optional; check DOM node exists [OK]
Common Mistakes:
  • Thinking semicolon is mandatory after JSX
  • Assuming JSX needs parentheses always
  • Not verifying if 'root' element exists in HTML
5. You want to render a list of names as <li> items inside a <ul>. Which React code correctly renders this list?
const names = ['Anna', 'Bob', 'Cara'];

// Choose the correct rendering code
hard
A. ReactDOM.render(<ul><li>names</li></ul>, document.getElementById('root'));
B. const listItems = names.forEach(name => <li>{name}</li>); ReactDOM.render(<ul>{listItems}</ul>, document.getElementById('root'));
C. const listItems = names.map(name => <li key={name}>{name}</li>); ReactDOM.render(<ul>{listItems}</ul>, document.getElementById('root'));
D. const listItems = names.map(name => <li>{name}</li>); ReactDOM.render(<ul>listItems</ul>, document.getElementById('root'));

Solution

  1. Step 1: Understand list rendering with keys

    React requires keys on list items for efficient updates; map returns a new array of elements.
  2. Step 2: Analyze each option

    const listItems = names.map(name => <li key={name}>{name}</li>); ReactDOM.render(<ul>{listItems}</ul>, document.getElementById('root')); uses map with key attribute and renders list correctly. const listItems = names.forEach(name => <li>{name}</li>); ReactDOM.render(<ul>{listItems}</ul>, document.getElementById('root')); uses forEach which returns undefined. ReactDOM.render(<ul><li>names</li></ul>, document.getElementById('root')); renders literal 'names' text. const listItems = names.map(name => <li>{name}</li>); ReactDOM.render(<ul>listItems</ul>, document.getElementById('root')); misses {} around listItems, rendering literal 'listItems' text.
  3. Final Answer:

    const listItems = names.map(name => <li key={name}>{name}</li>); ReactDOM.render(<ul>{listItems}</ul>, document.getElementById('root')); -> Option C
  4. Quick Check:

    Use map with keys for lists [OK]
Hint: Use map with keys to render lists in React [OK]
Common Mistakes:
  • Using forEach instead of map for rendering
  • Omitting key attribute on list items
  • Rendering array as plain text
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