1. Component
- ์ปดํฌ๋ํธ(Component)๋, ๋ฆฌ์กํธ์ ๊ธฐ๋ณธ ๋จ์๋ก, UI๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ๋ณ์ ์ธ ๋ทฐ ๋จ์์ด๋ค.
- ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ฅผ ์กฐํฉํ์ฌ ๋ณต์กํ ํ๋ฉด์ ๋ง๋ค ์ ์๋ค.
- ์ปดํฌ๋ํธ๋ JavaScript์ ํจ์ ํํ๋ก ๊ตฌํ๋๋ค.
- ์ปดํฌ๋ํธ๋ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- ์ปดํฌ๋ํธ ํด๋์ค์ ์ด๋ฆ์ ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ์์ฑํ๋ค. (์ปดํฌ๋ํธ ํด๋์ค: ์ปดํฌ๋ํธ๋ฅผ ์ฐ์ด๋ด๋ ๊ณต์ฅ)
2. State
- setState(): ์ปดํฌ๋ํธ์ state ๊ฐ์ฒด์ ๋ํ ์ ๋ฐ์ดํธ๋ฅผ ์คํํ๋ค.
- state๊ฐ ๋ณ๊ฒฝ๋๋ฉด, ์ปดํฌ๋ํธ๋ ๋ฆฌ๋ ๋๋ง๋๋ค.
- state๋ ๋์ ์ธ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ์์ผ๋ก, Hooks์ค ํ๋์ธ useState๋ฅผ ํตํด ๋ค๋ฃฐ ์ ์๋ค.
- state๋ ํจ์์ ๋งค๊ฐ๋ณ์์ฒ๋ผ ์ปดํฌ๋ํธ์ ์ ๋ฌ๋๋ props์ ๋ฌ๋ฆฌ, ํจ์ ๋ด์ ์ ์ธ๋ ๋ณ์์ฒ๋ผ ์ปดํฌ๋ํธ ์์์ ๊ด๋ฆฌ๋๋ค.
import React, {useState} from "react";
function Counter() {
const [counter, setCounter] = useState(0);
<>
<div className="counter">This is {counter}</div>
<button onClick = {() => { setCounter(counter+1);}} >
plus
</button>
</>
return ();
}
export default Counter;
- const [counter, setCounter] = useState(0);
- useState()๋ฅผ ํธ์ถํ๋ฉด ๋ฐฐ์ด์ ๋ฐํํ๋ค.
- ์ฒซ ๋ฒ์งธ ์์๋ ํ์ฌ ์ํ ๊ฐ ๋ณ์์ด๊ณ , ๋ ๋ฒ์งธ ์์๋ ์ํ ๊ฐ์ ๊ฐฑ์ ํด์ฃผ๋ Setter ํจ์์ด๋ค.
- useState ๊ดํธ ์์ ๊ฐ์ ์ํ์ ์ด๊ธฐ ๊ฐ์ด๋ค.
- const [์ํ ๊ฐ ์ ์ฅ ๋ณ์, ์ํ ๊ฐ ๊ฐฑ์ ํจ์] = useState(์ํ ์ด๊ธฐ ๊ฐ);
- onClick = {() => { setCounter(counter+1);}}
- setCounter(): ์ํ ๊ฐ ๊ฐฑ์ ํจ์์ด๋ค.
- setCounter ํ๋ผ๋ฏธํฐ์๋ ์ ๋ฐ์ดํธ ํ ์๋ก์ด ๊ฐ์ ๋ฃ์ด์ค๋ค.
- setCounter(preNum => preNum + 1)๊ณผ ๊ฐ์ด ์ ๋ฐ์ดํธ ํ๋ ํจ์๋ฅผ ๋ฃ์ด ๊ฐ์ ์ ๋ฐ์ดํธ ํ ์๋ ์๋ค.
[ ์ฐธ๊ณ ]
https://xiubindev.tistory.com/97
'web > react' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] props (0) | 2021.09.15 |
---|---|
[React] useEffect (0) | 2021.09.15 |
[React] ๋ฆฌ์กํธ ์์ํ๊ธฐ (0) | 2021.09.13 |