Hook์ class๋ฅผ ์์ฑํ์ง ์๊ณ ๋ state๋ฑ ๋ค๋ฅธ React์ ๊ธฐ๋ฅ๋ค์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค.
Hook์ ๊ท์น
- React ํจ์ ๊ตฌ์ฑ ์์ ๋ด์์๋ง ํธ์ถํ ์ ์์(๋ฐ๋์ Functional Component ์์์ ์ฌ์ฉํด์ผ ํจ)
- ๊ตฌ์ฑ ์์์ ์ต์์์์๋ง ํธ์ถํ ์ ์์
- ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ ์์์ ๋ชป ์
useState
State: ์ปดํฌ๋ํธ์ ์ํ
//State ์ฌ์ฉํ๊ธฐ
const [state, setState] = useState(initialState);
//์ฝ๋ฐฑ์ผ๋ก ์ด๊น๊ฐ ์ง์ ํ๊ธฐ
//์ด๊น๊ฐ์ ๊ณ์ฐํ๋ ์ฝ๋๊ฐ ๋ณต์กํ ๊ฒฝ์ฐ์ ํ์ฉ
const [state, setState] = useState(() => {
// ...
return initialState;
});
//State ๋ณ๊ฒฝ
setState(nextState);
//์ด์ State๋ฅผ ์ฐธ์กฐํด์ State ๋ณ๊ฒฝ
//๋น๋๊ธฐ ํจ์์์ ์ต์ State ๊ฐ์ ๊ฐ์ ธ์์ ์๋ก์ด State ๊ฐ์ ๋ง๋ค ๋
setState((prevState) => {
// ...
return nextState
});
const [state, setState] = useState(์ด๊ธฐ๊ฐ);
// state ์์ฑ๊ณผ ๋์์ ๊ฐ์ ธ์ผ๋ ์ด๊ธฐ ๊ฐ์ ()์ ์ธ์๋ก ๋ฃ์ด ์ค
// state ํ์ฌ ์ํ ๊ฐ
// state ๊ฐ์ ๋ณ๊ฒฝ ์์ผ ์ฃผ๊ณ ์ถ์๋ setState์ ์ฌ์ฉ
const ์ด๊ธฐ๊ฐ = () => {
return ['์ด๊ธฐ๊ฐ1' , ์ด๊ธฐ๊ฐ2]};
const [state, setState] = useState(()=> {
retutn ์ด๊ธฐ๊ฐ();
});
//์ด๊ธฐ๊ฐ์ ๋ถ๋ฌ ๊ฐ์ ธ์ฌ๋ ๋ฌด๊ฑฐ์ด ์์
์ ํด์ผ ๋๋ค๋ฉด ์ฝ๋ฐฑ์ผ๋ก!
//์ฝ๋ฐฑ์ผ๋ก ๋ถ๋ฌ์ฃผ๋ฉด ๋งจ์ฒ์ ํ๋ฉด์ ๋ ๋๋ง ๋ ๋๋ง ๋ถ๋ ค์ง๊ฒ ๋จ
//state๋ฅผ ๋ณ๊ฒฝํ ๋ ์๋ก๋ณ๊ฒฝ ๋ ์คํ
์ดํธ ๊ฐ์ด ์ด์ ์คํ
์ดํธ ๊ฐ๊ณผ ์ฐ๊ด์ด ๋์ด์๋ค๋ฉด
setState((prevState) => {
//setState์ ์ธ์๋ก ๋ฆฌํดํ๋ ์ฝ๋ฐฑํจ์
return newState;
});
useEffect
Mount ํ๋ฉด์ ์ฒซ ๋ ๋๋ง / Update ๋ค์ ๋ ๋๋ง / Unmount ํ๋ฉด์์ ์ฌ๋ผ์ง๋
ํน์ ์์ ์ ์ฒ๋ฆฌํ ์ฝ๋๋ฅผ ์คํ์์ผ ์ฃผ๊ณ ์ถ๋ค๋ฉด ์ฌ์ฉ
์ปดํฌ๋ํธ ํจ์์์ ์ฌ์ด๋ ์ดํํธ(๋ฆฌ์กํธ ์ธ๋ถ์ ๊ฐ์ด๋ ์ํ๋ฅผ ๋ณ๊ฒฝํ ๋)์ ํ์ฉํ๋ ํจ์
//์ฒ์ ๋ ๋๋ง ํ์ ํ ๋ฒ๋ง ์คํ
useEffect(() => {
// ...
}, []);
//๋ ๋๋ง ํ์ ํน์ ๊ฐ์ด ๋ฐ๋์์ผ๋ฉด ์คํ
//์ฐธ๊ณ ๋ก ์ฒ์ ๋ ๋๋ง ํ์๋ ํ ๋ฒ ์คํ๋จ
useEffect(() => {
// ...
}, [dep1, dep2, dep3, ...]);
//์ฌ์ด๋ ์ดํํธ ์ ๋ฆฌ(Cleanup)ํ๊ธฐ
useEffect(() => {
// ์ฌ์ด๋ ์ดํํธ
return () => {
// ์ ๋ฆฌ
}
}, [dep1, dep2, dep3, ...]);
// ๊ธฐ๋ณธ์ ์ผ๋ก ์ฝ๋ฐฑ
useEffect(() => {์์
์ฝ๋})
//ํ๋์ ์ฝ๋ฐฑํจ์๋ง ๋ฐ์
// ๋ ๋๋ง ๋ ๋ ๋ง๋ค ์คํ
useEffect(() => {},[value])
//ํ๋ฉด์ ์ฒซ ๋ ๋๋ง ๋ ๋ ์คํ
//value ๊ฐ์ด ๋ฐ๋ ๋ ์คํ
useEffect(() => {},[])
//๋น๋ฐฐ์ด์ ํ๋ฉด์ ์ฒซ ๋ ๋๋ง ๋ ๋๋ง ์คํ
์ฐธ๊ณ ๋ฐ ์ถ์ฒ
https://ko.reactjs.org/docs/hooks-reference.html
Hooks API Reference – React
A JavaScript library for building user interfaces
ko.reactjs.org
https://www.w3schools.com/react/react_hooks.asp
React Hooks
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com
'FA > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
20220928 React์์ ์ธ์คํ ์คํ ๋ฆฌ์ฒ๋ผ ํ๊ธฐ (0) | 2022.09.28 |
---|---|
20220927 React์์ sweetalert2 ์ฌ์ฉํ๊ธฐ (0) | 2022.09.27 |
20220924 React์์ Dark๋ชจ๋ ์ ์ฉํ๊ธฐ (0) | 2022.09.24 |
220919 React ํ์ดํ, ์์ด์ฝ ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ (0) | 2022.09.19 |
220917 ๋ฐฐ๊ฒฝ์์ ๋๋ค์ผ๋ก ์ด๋ฏธ์ง ๋์ค๊ฒ ํ๊ธฐ (0) | 2022.09.17 |