
์์ ๋ชฉํ
- state ํ์ฉํด์ ๋ชจ๋ฌ ๋๊ณ -์ผ๊ธฐ
- props ํ์ฉํด์ ๊ฐ๋ผ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ
๋ฐ์ ํ ๊ฒ
- ์ค์ํ ๋ถ๋ถ์ ๊ฐ๋ณ๊ฒ ์ฐ์ํด์ ๋ฐ๋ณตํ ์ ์๋๋ก, ์์ฐ์ค๋ฝ๊ฒ ํก์๋ ์ ์๊ฒ
- ๊ต์์ ๋ก์ง ์์ฑ๋๊ณ ์์ฑ ์์ํด์ผํจ. ๋ก์ง์ด ํ๋ค๋ฆฌ๋ฉด ๊ต์ ์์ฑ ๋ ํฐ์ ธ๋ฒ๋ ค
- ์๋ ค์ค๊ฒ ์๊ฐํ๋ฉด์ ์๋ฃ ๋ณด๋๊น ํ์คํ ๋ ๋ง์๊ฒ ๋ณด์ด๊ณ ํก์๋ ์ฝ๋ค.
๋ฐ์ดํฐ ๊ตฌ์กฐ = ๋ฐ์ดํฐ ์ฐจ๊ณก์ฐจ๊ณก ์ ๋ฆฌํด๋ฌ์ผ, ์์ ๊บผ๋ด์ธ ์ ์์.
๋ชจ๋ฌ์ ์ผ๊ณ -๋๊ธฐ ์ํ state๋ฅผ ๋ง๋ค์ด๋ณด์
- app.js
=>import React, { useState } from "react";
=>const [isOpen, setIsOpen] = useState(false);
true, false ๋ฐ๊ฟ์ ๋ชจ๋ฌ์ ์ผ๊ณ ๊บผ๋ณด์!

render์์์ ํจ๋ถ๋ก state ๋ฐ๊พธ๋ฉด ์๋จ
์? state ๋ฐ๋ ๋ ๋ง๋ค render ํจ์ ๋ค์ ํธ์ถํด์ผ ํ๋๊น
state ๋ฐ๋ ๋๋ง๋ค ๋ฆฌ์กํธ์๊ฒ ์๋ ค์ฃผ๋๋ก ์์ ์ ์ํ ํจ์ ์ฌ์ฉํด์ผํจ.
๋ชจ๋ฌ์ ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ชจ๋ฌ์ด ๊บผ์ง๊ณ , ํ๋ฉด์ ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ชจ๋ฌ์ด ์ผ์ง๊ฒ ํด๋ณด์.
- app.js
=> ๋ชจ๋ฌ์ผ๊ธฐ ๋ฒํผ ๋ง๋ค๊ธฐ (๋ชจ๋ฌ๋ฐ์)
<button onClick={() => setIsOpen(true)}>๋ชจ๋ฌ์ผ๊ธฐ</button>
=> ๋ชจ๋ฌ๋๊ธฐ ๋ฒํผ ๋ง๋ค๊ธฐ (๋ชจ๋ฌ์์)
<button onClick={() => setIsOpen(false)}>๋ชจ๋ฌ๋๊ธฐ</button>
๋ฒํผ์ ๋๋ฌ์ ๋ชจ๋ฌ์ ์ผ๊ณ ๊บผ๋ณด์!

- app.js
=> stateconst [nickname, setNickname] = useState("");
=> input<input onChange={(e) => setNickname(e.target.value)} value={nickname} ></input>
=> props<Route path="/profile" element={<PageProfile nickname={nickname} />} />- profile.js
