Events in React
React events are camelCase: onClick, onChange, onSubmit. You pass a function: onClick={handleClick}. If you write onClick={handleClick()} it runs during render — classic bug. Synthetic events wrap the browser event so the API is the same across browsers.
Need the event in a delayed callback? Save e.target.value first, or call e.persist() in very old React. In modern React 17+ pooling is gone, but still copy values you need later. For lists, pass an id: onClick={() => remove(id)}.
Events in React — click Save → console — saved. onClick={handleClick} not onClick={handleClick()}.
onClick={fn} not fn(). camelCase.