Hook
1.
2. Ví dụ
import React, { useEffect, useState } from "react";
import ReactDOM from "react-dom";
import TextField from "@mui/material/TextField";
import { createTheme, ThemeProvider, styled }
from '@mui/material/styles';
import { green, red } from '@mui/material/colors';
import { Button } from "@mui/material";
const innerTheme = createTheme({
palette: {
mode: 'light',
},
});
function App(props) {
const [name, setName] = useState(props.name);
const [surName, setSurName] = useState("Poppins");
const width = useWindowWidth();
useEffect(()=>{
document.title = name+' '+surName;
});
function handleNameChange(e){
setName(e.target.value);
}
function handleSurNameChange(e){
setSurName(e.target.value);
}
return (
<div>
<ThemeProvider theme={innerTheme}>
<TextField label="Name"
variant="standard" onChange={handleNameChange}
value={name}/>
<br/>
<TextField label="surName"
variant="standard" onChange={handleSurNameChange}
value={surName}/>
<Button variant="contained" > {width} </Button>
</ThemeProvider>
</div>
);
}
ReactDOM.render(<App name = "Mary" />, document.querySelector("#app"));
//First custom hook
function useWindowWidth(){
const [width, setWidth] = useState(window.innerWidth);
useEffect(()=>{
const handleSizeChange = ()=> setWidth(window.innerWidth);
window.addEventListener('resize',handleSizeChange);
return ()=>{
window.removeEventListener('resize',handleSizeChange);
}
});
return width;
}3
4. useReducer
4.1 Cách dùng

4.2 Cách hoạt động


5. Use callback

6. Use memo

7. use Ref

8. useImperativeHandle
useImperativeHandle9 . useLayoutEffect
10. useDebugValue
11. useContext
Last updated