User interfaces are driven by events — clicks, typing, submissions, key presses. React lets you attach event handlers directly in JSX with camelCase props like onClick and onChange, passing a function that runs when the event fires. This keeps the handler close to the element it concerns and fits naturally into the declarative component model.
Behind these handlers is the SyntheticEvent: React wraps the browser's native event in a consistent, cross-browser object with the same interface everywhere. Your handler receives this synthetic event, from which you can read values, prevent defaults, and stop propagation, using the same API regardless of the underlying browser.
Handling events well means understanding how to pass handlers, read event data, control default behaviour, and connect events to state updates — the loop that makes a UI interactive. This lesson covers attaching handlers, the synthetic event object, and the patterns that keep event handling clean and bug-free in React 19.