React ๋ฒ์ 16.8๋ถํฐ ์๋กญ๊ฒ ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ผ๋ก, Hook์ ์ด์ฉํ๋ฉด ํด๋์ค ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ ํ์ ์์ด state์ ๊ฐ์ ์ฌ๋ฌ React ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค.
Hook์ ๊ฐ์ (๊ณต์ ๋ฌธ์)
1. ์ต์์์์๋ง Hook์ ํธ์ถํด์ผ ํ๋ค.
๋ฐ๋ณต๋ฌธ์ด๋ ์กฐ๊ฑด๋ฌธ, ๋๋ ์ค์ฒฉ๋ ํจ์ ๋ด์์ Hook์ ํธ์ถํ๋ฉด ์๋๋ค.
2. ์ค์ง React ํจ์ ๋ด์์ Hook์ ํธ์ถํด์ผ ํ๋ค.
์ผ๋ฐ์ ์ธ JavaScript ํจ์์์ Hook์ ํธ์ถํ๋ฉด ์๋๋ค.
Hook์ React์ ํจ์ํ ์ปดํฌ๋ํธ ๋ด์์ ์ฌ์ฉ๋๋๋ก ๋ง๋ค์ด์ง ๋ฉ์๋์ด๋ค.
: ํจ์ ์ปดํฌ๋ํธ์์ ์ปดํฌ๋ํธ ๋ด๋ถ์์ ๋ณํํ๋ ๊ฐ์ state๋ก ์ ํด์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ด state๋ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง๋์ด๋ ๊ทธ๋๋ก ์ ์ง๋๋ค.
State Hook์ ์ด์ฉํ๊ธฐ ์ํด์๋ React์์ useState
๋ฅผ ๋ถ๋ฌ์์ผ ํ๋ค.
import { useState } from "react";
useState()
๋ฅผ ํธ์ถํ๋ ๊ฒ์ state
๋ณ์๋ฅผ ์ ์ธํ๋ ๊ฒ์ด๋ค.state
๋ณ์๋ ํจ์๊ฐ ์ข
๋ฃ๋์ด๋ React์ ์ํด ์ฌ๋ผ์ง์ง ์๋๋ค.useState()
Hook์ ์ธ์๋ก state ์ด๊ธฐ ๊ฐ์ ๋๊ฒจ์ค์ผ ํ๋ค. ex) 0
, []
, false
...const [state ์ ์ฅ ๋ณ์, state ๊ฐฑ์ ํจ์] = useState(state ์ด๊ธฐ ๊ฐ);
useState
๋ state ๋ณ์์, ํด๋น ๋ณ์๋ฅผ ๊ฐฑ์ ํ ์ ์๋ ํจ์๋ฅผ ๋ฐํํ๋ค.useState
๋ก ํธ์ถ๋ ์ด ๋ณ์๋ค์ ๋ค๋ฅธ ๋ณ์๋ช
์ผ๋ก ํ ๋นํ๋ ๊ฒ์ด๋ค.)function Checkbox() {
const [isChecked, setIsChecked] = useState(false);
}
๋ฐฐ์ด ๊ตฌ์กฐ ๋ถํด
const [fruit, setFruit] = useState('banana');
๊ตฌ์กฐ ๋ถํด ํ ๋น ๋ฌธ๋ฒ์ ์ด์ฉํ ์์ ์ฝ๋๋ฅผ ํ์ด์ ์ฐ๋ฉด ์๋์ ๊ฐ๋ค.
const fruitStateVariable = useState('banana'); // ๋ ๊ฐ์ ์์ดํ ์ ๋ฐํ const fruit = fruitStateVariable[0]; // ์ฒซ ๋ฒ์งธ ์์ดํ const setFruit = fruitStateVariable[1]; // ๋ ๋ฒ์งธ ์์ดํ
โก๏ธ 0์ด๋ 1๋ก ๋ฐฐ์ด์ ์ ๊ทผํ๋ ๊ฒ๋ณด๋ค, ๊ตฌ์กฐ ๋ถํด ํ ๋น์ผ๋ก ๋ณ์ ์ด๋ฆ์ ์ ํด์ฃผ๋ ๊ฒ์ด ๋ ๊ฐ๋ ์ฑ์ด ์ข๋ค.
function CheckboxExample() {
const [isChecked, setIsChecked] = useState(false);
const handleChecked = (event) => {
setIsChecked(event.target.checked);
};
return (
<div className="App">
<input type="checkbox" checked={isChecked} onChange={handleChecked} />
<span>{isChecked ? "Checked!!" : "Unchecked"}</span>
</div>
);
}
handleChecked
ํจ์๋ฅผ ํธ์ถํ๋ค. setIsChecked
ํจ์๋ฅผ ํธ์ถํ๊ณ , ํธ์ถ๋ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ isChecked
๋ณ์๊ฐ ๊ฐฑ์ ๋๋ค. isChecked
๋ณ์๋ฅผ CheckboxExample ์ปดํฌ๋ํธ์ ๋๊ฒจ ํด๋น ์ปดํฌ๋ํธ๋ฅผ ๋ฆฌ๋ ๋๋ง ํ๋ค.์ฃผ์ํ ์
- React ์ปดํฌ๋ํธ๋ state๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์๋กญ๊ฒ ํธ์ถ๋๊ณ , ๋ฆฌ๋ ๋๋ง๋๋ค.
- React state๋ ์ํ ๋ณ๊ฒฝ ํจ์
setState()
ํธ์ถ๋ก ๋ณ๊ฒฝํด์ผํ๋ค.
์ด ๊ธ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ ๊ธ์
๋๋ค.
https://ko.reactjs.org/docs/getting-started.html