๊ฐ์ - Section 6 : ํ๋ก์ ํธ 1. ์นด์ดํฐ ์ฑ
์ ๋ฐ๋ฏธ : https://www.udemy.com/course/winterlood-react-basic/
์ธํ๋ฐ : https://www.inflearn.com/course/%ED%95%9C%EC%9E%85-%EB%A6%AC%EC%95%A1%ED%8A%B8
[2024] ํ์ ํฌ๊ธฐ๋ก ์๋ผ ๋จน๋ ๋ฆฌ์กํธ(React.js) : ๊ธฐ์ด๋ถํฐ ์ค์ ๊น์ง ๊ฐ์ | ์ด์ ํ Winterlood - ์ธํ๋ฐ
์ด์ ํ Winterlood | ๊ฐ๋ ๋ถํฐ ๋ ํนํ ํ๋ก์ ํธ๊น์ง ํจ๊ป ๋ค๋ค๋ณด๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฆฌ์กํธ๋ฅผ ์ด ๊ฐ์๋ก ํ ๋ฒ์ ๋๋ด์. ํ์ต์ ์งง๊ฒ, ์์ฉ์ ๊ธธ๊ฒ 17์๊ฐ ๋ถ๋์ All-in-one ๊ฐ์!, ๋ฆฌ์กํธ, ํ ๊ฐ์๋ก
www.inflearn.com
ํ๋ก์ ํธ ์๊ฐ ๋ฐ ์ค๋น
* ์ฌ์ฉ์๊ฐ ์นด์ดํธ๋ฅผ ์ฆ๊ฐํ๊ฑฐ๋ ๊ฐ์ํ ์ ์๋ ์นด์ดํฐ ํ๋ก์ ํธ
* ํ์ฌ ์นด์ดํฐ ํ์ ์์ญ์ 'Viewer', ์ฆ๊ฐ ๋ฐ ๊ฐ์ ๋ฒํผ์ 'Controller'์ ์ปดํฌ๋ํธ๋ฅผ ๊ฐ๊ฐ ๋ง๋ค์ด์ ๊ตฌํํ ๊ฒ์ด๋ค.
UI ๊ตฌํํ๊ธฐ
* App.jsx
function App() {
return (
<div className="App">
<h1>Simple Counter</h1>
<section>
<Viewer />
</section>
<section>
<Controller />
</section>
</div>
)
}
export default App
* Viewer.jsx
const Viewer = () => {
return (
<div>
<div>ํ์ฌ ์นด์ดํธ : </div>
<h1>0</h1>
</div>
)
}
export default Viewer;
*Controller.jsx
const Controller = () => {
return (
<div>
<button>-1</button>
<button>-10</button>
<button>-100</button>
<button>+100</button>
<button>+10</button>
<button>+1</button>
</div>
)
}
export default Controller;
๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
* ํ์ฌ ์นด์ดํธ๋ฅผ ๋ํ๋ด๋ state๋ ์ด๋์ ์ถ๊ฐ๋ฅผ ํ๋ฉด ์ข์๊น?
- ์ ๋ต์ ํ์ฌ ์นด์ดํธ๋ฅผ ๋ณด์ฌ์ฃผ๋ Viewer๊ฐ ์๋๋ผ App ์ปดํฌ๋ํธ์ด๋ค. ์ด์ ๋ App์ด ๋ถ๋ชจ์ปดํฌ๋ํธ์ด๊ธฐ ๋๋ฌธ์, ํ์ ์ปดํฌ๋ํธ(Viewer, Controller)์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ์ ๋ฐ์ดํธ ํ ์ ์๋ค.
*App.jsx
import { useState } from 'react'
function App() {
const [count, setCount] = useState(0);
const onClickButton = (value) => {
setCount(count + value);
}
return (
<div className="App">
<h1>Simple Counter</h1>
<section>
<Viewer count = {count}/>
</section>
<section>
<Controller onClickButton = {onClickButton}/>
</section>
</div>
)
}
export default App
* Viewer.jsx
const Viewer = ({count}) => {
return (
<div>
<div>ํ์ฌ ์นด์ดํธ : </div>
<h1>{count}</h1>
</div>
)
}
export default Viewer;
* Controller.jsx
const Controller = ({onClickButton}) => {
return (
<div>
<button onClick={() => onClickButton(-1)}>-1</button>
<button onClick={() => onClickButton(-10)}>-10</button>
<button onClick={() => onClickButton(-100)}>-100</button>
<button onClick={() => onClickButton(+100)}>+100</button>
<button onClick={() => onClickButton(+10)}>+10</button>
<button onClick={() => onClickButton(+1)}>+1</button>
</div>
)
}
export default Controller;
* ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํตํด์ ์๊ฒ๋ ๊ฒ์ React๋ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ด๋ผ๋ ๊ฒ์ด๋ค.
๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ React์ ํต์ฌ ๊ฐ๋ ์ค ํ๋๋ก, ๋ฐ์ดํฐ๊ฐ ํ ๋ฐฉํฅ์ผ๋ก๋ง ํ๋ฅด๋ ๊ตฌ์กฐ๋ฅผ ์๋ฏธํ๋ค. React์์๋
๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ฉฐ, ์ด๋ฅผ ์์ ์ปดํฌ๋ํธ๋ก props๋ฅผ ํตํด ์ ๋ฌํ ๋ค.
'IT > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ์ ํฌ๊ธฐ๋ก ์๋ผ ๋จน๋ ๋ฆฌ์กํธ] - ๋ผ์ดํ์ฌ์ดํด (1) | 2024.11.28 |
---|---|
[ํ์ ํฌ๊ธฐ๋ก ์๋ผ ๋จน๋ ๋ฆฌ์กํธ] - React.js ์ ๋ฌธ 3 (0) | 2024.11.25 |
[ํ์ ํฌ๊ธฐ๋ก ์๋ผ ๋จน๋ ๋ฆฌ์กํธ] - React.js ์ ๋ฌธ 2 (1) | 2024.11.22 |
[ํ์ ํฌ๊ธฐ๋ก ์๋ผ ๋จน๋ ๋ฆฌ์กํธ] - React.js ์ ๋ฌธ 1 (1) | 2024.11.19 |
[ํ์ ํฌ๊ธฐ๋ก ์๋ผ ๋จน๋ ๋ฆฌ์กํธ] - React.js ๊ฐ๋ก (1) | 2024.11.15 |