The best approach is to leverage the built-in props of MUI components. MUI components extend standard HTML elements, meaning you can pass any valid React event handlers like onClick, onChange, onMouseEnter, etc.
Pass Event Handlers as Props
MUI components accept standard React event handlers. The best practice is to pass event handlers directly as props.
Example: Handling Click, Hover, and Focus Events
import React from "react";
import { Button, TextField } from "@mui/material";
const MyComponent = () => {
const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
console.log("Button clicked!", event);
};
const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {
console.log("Input focused!", event.target.value);
};
const handleMouseEnter = (event: React.MouseEvent<HTMLButtonElement>) => {
console.log("Mouse entered button!", event);
};
return (
<div>
<Button
variant="contained"
color="primary"
onClick={handleClick}
onMouseEnter={handleMouseEnter}
>
Click Me
</Button>
<TextField
label="Enter Text"
onFocus={handleFocus}
variant="outlined"
/>
</div>
);
};
export default MyComponent;