Contents of React Interview Questions

Comprehensive collection of React interview questions and answers covering hooks, components, state management, and best practices.

What are Synthetic Events in React?

In React, Synthetic Events are React’s way of handling events across different browsers in a consistent and unified manner. Instead of dealing directly with the browser’s native events (like onclick, onchange, etc.), React wraps these native events into a SyntheticEvent object. This synthetic object behaves the same across all browsers, ensuring cross-browser compatibility without the developer needing to worry about inconsistencies.

Key Points about Synthetic Events:

  • Synthetic events are wrapped around the browser's native event.
  • They normalize events so that they have the same properties and methods across all browsers.
  • They are part of React’s internal event delegation system, which improves performance by attaching a single event listener to the root of the document.
  • Synthetic events are pooled — meaning that the event objects are reused for performance reasons. If you need to access the event asynchronously (like inside a callback or a promise), you should call event.persist() to prevent React from clearing the event.

Example:

function MyButton() { function handleClick(event) { console.log('Button clicked!', event.type); // Synthetic event } return ( <button onClick={handleClick}> Click Me </button> ); }

In the example above, handleClick receives a SyntheticEvent when the button is clicked.

Note: While Synthetic Events work just like native events in most cases, they are part of React's own abstraction layer and offer additional benefits like event pooling and improved performance.