โญ React(๋ฆฌ์กํธ) ์์ ๋ฐฐ์ด ๋ฐ๋ณต๋ฌธ ์ฐ๊ธฐ
์ด๋ฒ ์ฃผ์ ์ฃผ์ด์ง ๊ฐ์ธ ๊ณผ์ ๋ฅผ ํ๊ธฐ ์ํด์ ์ฝ๋๋ฅผ ์ผ๋๋ฐ, ๊ณต๋ถํ ๋๋ ์ ์ ์ ์ ํ๋ ์ฝ๋๊ฐ ๊ฐ์๊ธฐ ๊ฝ! ๋งํ๋ค.
๋ฐ๋ก ๋ฐฐ์ด ๋๋ฌธ์ด์๋๋ฐ, return () ์์์ for๋ฌธ์ ๋ถ๋ฌ ๋ผ ์ ์๋, ์๋์ ๋ํ ์๋ฌธ๊ณผ ๋ ์ map()์ผ๋ก๋ง ๋ฐ๋ณต๋ฌธ์ ๋ง๋ค์ด๋ด๋ ๋ฒ๋ฆ์ผ๋ก ํ์ฐธ์ ํค๋งค์๋ค. ์ผ๋จ, ๋ชป ๋ถ๋ฌ๋ธ๋ค! ใ ์ญ์๋ ๊ธฐ์ต์ ์์๋ ์ด์ ๊ฐ ํ์คํ๊ฒ ์์๋ค.
for๋ฌธ ์์ฒด๋ฅผ return () ๊ฐ ์์์ ๋ถ๋ฌ๋ผ ์ ์์ง๋ง ํจ์๋ก ์์์ ์ฐ๊ณ JSX๋ฅผ ๋ฐํํ๋ ํจ์๋ก ํธ์ถ์ ํ ์ ์๋ค!
๊ฐ์ธ ๊ณผ์ ๋ก ๋ง๋ค๊ณ ์๋ ์ผ์ฃผ์ผ ํ์ ์ ์ฃผ๋ ํ๋ก์ ํธ์ธ๋ฐ, ์์ ๋ฉ์ธ ํ์ด์ง์ ๋จ๋ ํ์ ์ด ๋ค์ด๊ฐ ์๋ ๋ถ๋ถ์ ๋๋ค ์ซ์๋ฅผ ๋ฝ์์ ๐๐ค ์ด๋ชจํฐ์ฝ์ ์ด์ฉํด์ ๋ง๋ค์๋ค. ์ด ๋ ๋๋ค์ผ๋ก ๋ฝํ ์ซ์๊ฐ ๋ค์ด๊ฐ์๋ ๋ฐ์ดํฐ ๊ฐ์ด props ํ์ ์ผ๋ก ์ปดํฌ๋ํธ์ ์ ํด์ง๊ธฐ ๋๋ฌธ์ ๋๋ค ์ซ์๋งํผ์ ๋ฐฐ์ด์ ์๋ก ๋ง๋ค์ด์ค์ผํ๋ค.
๋ฐฐ์ด์ ์์ฑํ ๋ ๋ง๋ค ์ ์๋๊ฒ for๋ฌธ ๋ฐ์ ์์ ๊ฒ ๊ฐ์๋ฐ, return()์์ ๋ฐ๋ก ์ธ ์๊ฐ ์์ด์ ๋ต๋ตํ๋ค.
ํด๊ฒฐ์ฝ๋
const { id, score, date} = day
const Happy = () => {
let scoreArr =[];
for(let i=0; i<score; i++){
scoreArr.push(<li>๐</li>)
}
return scoreArr;
}
const Sad =() => {
let scoreArrr =[];
for(let j=0; j<5-score; j++){
scoreArrr.push(<li>๐ค</li>)
}
return scoreArrr;
}
โ ์ค์ฝ์ด๋ฅผ ์ค ๋ถ๋ถ์ Happy()๋ผ๋ ํจ์๋ก ์ ์๊ฐ ์ ๋ค์ด๊ฐ๋ ๋ถ๋ถ์ Sad()๋ผ๋ ํจ์๋ก ๋ฐฐ์ด์ ๋ ๊ฐ๋ฅผ ๋ง๋ค์ด์ ํฉ์ณ์ฃผ๋ฉด ์ด 5๊ฐ์ ํํธ๊ฐ ๋์ค๊ฒ๋ ํด์คฌ๋ค.
โํจ์๋ฅผ ํธ์ถํด์ฃผ๊ณ return()๋ถ๋ถ์์ ํจ์๋ฅผ ํธ์ถํด์ ๋ฐ๋๊ฑฐ๋ค
return (
<>
<Score key={id}>
<p>{date}</p>
<ul>
{Happy()}
{Sad()}
</ul>
<button onClick={onClick}>์ ์์ฃผ๋ฌ๊ฐ๊ธฐ</button>
</Score>
</>
)
โ ๋ถ๋ช ๋ ๊ฐ๊ฒฐํ ์ฝ๋๊ฐ ์์ ๊ฒ ๊ฐ์๋ฐ ์์ง์ ์๊ฐ์ด ์ ์ ๋์ ์กฐ๊ธ ๋ ์์๋ด์ผํ ๊ฒ ๊ฐ๋ค.
โญ React – Router v6 ๋ณํ์ ๋ฐ๋ฅธ ์ค๋ฅ ํํฐ~ ๐ต
๋ผ์ฐํ ์ ์ด์ ์ ๋ ํํ๋ฉด์ ๋ฏธ๋ ํ๋ก์ ํธ ๋ง๋ค ๋ ๋ช ๋ฒ ์จ๋ณธ ๊ธฐ์ต์ด ์์ด์ ์์ํ๊ฒ ๊ณต๋ถํด ๋๊ฐ ์ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋๋ฐ! ๋ญ๊ฐ ์ค๋ฅ๊ฐ ๋ง์ด ๋๋ ๊ฒ์ด๋ค.
์๊ณ ๋ณด๋ Route v6 ๊ฐ ๋์์ ๊ทธ๋ฐ๊ฒ!!!!! ๋ด๊ฐ ๊ฒช์๋ ์ค๋ฅ ๋ช ๊ฐ์ง๋ฅผ ์ด์ผ๊ธฐ ํด๋ณด๋ ค๊ณ ํ๋ค.
โ useHistory() ๋์ ์ useNavigate()
useHistory ๋์ ์ useNavigate()๊ฐ ์๊ฒผ๋ค. ์ด๊ฑธ ๋ชฐ๋ผ์ ์ค๋ฅ์์์ ๋ ํค๋งธ๋ค.
useHistory.push(“/”) ํด์ผํ๋๋ฐ useNavigate๋ฅผ ์ฐ๊ณ push๋ฅผ ์ ๋ถ์ฌ์ค๋ ๋๋ค ๐
โ Switch ๋์ ์ Routes!
Route๋ฅผ ๋ฌถ์ด์ฃผ๋ Switch ๋์ ์ Route์์ s๊ฐ ๋ถ์ Routes ๋ผ๋ ๊ฒ์ด ์๊ฒจ๋ฌ๋ค!!! ํจ์ฌ ์ง๊ด์ ์ด๋ผ์ ์ด๊ฑด ์ข ์ข์ ๊ฒ ๊ฐ๋ค!
โ Route ์ธ ๋ exact๊ฐ ์ฌ๋ผ์ก๋ค!!
Route path=”” ์ธ ๋ ํจ๊ป ์ฐ๋ exact๊ฐ ์ฌ๋ผ์ก๋ค. ์ด๊ฑฐ ๋ถ์ฌ์ ์ฐ๋ฉด ์ค๋ฅ๋๋ค.
โ component ๋ง๊ณ element ๋ก!
<Route component ={ component } />
๋ผ๊ณ ์ฐ๋ ๊ตฌ๋ฌธ์ component๊ฐ element๋ก ๋ฐ๊ผ๋ค!
์ค๋ฅ๋ฅผ ์์ ํ๊ธฐ ์ํด์ ๊ณต๋ถํ๋ฉด์ ์ฐธ์กฐํ ๋ธ๋ก๊ฑฐ๋์ ํฌ์คํ ๊ณต์ ํฉ๋๋ค! ๐๐ป React-Router v6 ๋ณํ ์์๋ณด๊ธฐ
๐ ํ๊ณ
์ด๋ฒ ์ฃผ์ ์ ๋ฌ ๋ฐ์ 5์ฃผ์ง๋ฆฌ ๊ฐ์๋ฅผ 2์ฃผ์ ๊ฑธ์ณ์ ๋ฃ๋๋ค๊ณ ํ๋ค. ์๊ฐ ์กฐ๊ธ ํ๊ฐ ๋ฌ๋ค. ๋ฌผ๋ก ๋น์ ๊ณต์๋ค๊ณผ ํจ๊ปํ๋ ๋ถํธ ์บ ํ๋ผ๋ ๊ฑธ ์๊ณ ๋ค์ด์๊ณ , ๋๋ ๊ฐ์์ ํ๋ฆฌํฐ์ ๋ํ ๊ธฐ๋๋ณด๋ค๋ ํ ํ๋ก์ ํธ๋ฅผ ์์ ์ ์๋ค๋ ์ฅ์ ์ ์์ํ ๊ฑฐ๊ธด ํ๋ฐ. ์ด ์ ๋ ๋ฐฐ์ฐ๊ณ ํด๋ก ์ฝ๋ฉ & ํ๋ก์ ํธ๋ฅผ ํ๋ค๋ฉด ์ง์ง ๋ฉํ ๊ฐ๋ฆด ๊ฒ ๊ฐ์๋ฐ? ๋ผ๋ ์๊ฐ์ด ๋ค์๋ค. ์ค๋ ๋ฆฌ๋์ค๊น์ง ๋ฃ๋๋ฐ, ์ด์ ์ ๋ฆฌ๋์ค๋ผ๋ ๊ฒ์ ํ ๋ฒ ๋ค๋ค๋ดค๋ ๋๋ ์ด์ ์ผ ์ดํด๊ฐ ๋ ๋ฒํ๋ค๋ ์๊ฐ์ด ๋๋๋ฐ, ์ด๋ฐ ์ปค๋ฆฌํ๋ผ์ด ๊ด์ฐฎ์๊ฐ? ๋ผ๋ ์๊ฐ์ ๋์์์ด ํ๊ฒ ๋๊ณ . ๋ด๊ฐ ๊ณผ์ฐ ์ด๋ฐ ํ์ต์ผ๋ก ์ฌํ ๋จ๊ณ๋ก ์ ํ๊ฐ ๊ฐ๋ฅํ ๊น? ๋ผ๋ ์๊ตฌ์ฌ๋ ๋ค๊ธฐ ์์ํ๋ค. ๊ธฐ์ด๊ฐ ์ฝํ๋ค๊ณ ์๊ฐํด์ ์ด๊ธ ๊ฐ์ ๋ฃ๋ ๊ฒ๋ ์ข๋ค๊ณ ์๊ฐํ๋๋ฐ ํ๋ฃจํ๋ฃจ ์ฌ๋๋ค์ด ์บ ํ๋ฅผ ์ดํํด๊ฐ๋ ๋ชจ์ต์ ๋ณด๋ฉด ์์ฒญ ํ๋ค๋ฆฐ๋ค.
์ด๋ฏธ ๋ค๋ฅธ ๊ณณ์์ ๋ฆฌ์กํธ ๊ฐ์๋ฅผ ๋ค์ ๊ฑฐ๋ผ๊ณ ๋งํ๋ ์ฌ๋๋ค์ด ๋ง๋ค ใ
ใ
ใ
ใ
์ค๋ง์ด๊ฐ… ์ปค๋ฆฌํ๋ผ์ด ์์ฒญ ๋นก์ ๊ฒ ๊ฐ์ผ๋ฉด์๋ ๋์จํ ๊ฒ ๊ฐ๊ณ ๋ฆฌ์กํธ๋ ์
๋ฌธ๋ง 2์ฃผ๊ณ ์ฌํ๋ 1์ฃผ๋ง ํ๋ค. 5์ฃผ์ฐจ ๊ฐ์๋ฅผ 2์ฃผ ๋์ ๋ณด๋ ๊ฑฐ๋ค.
๋๋ ์ด๋ฒ ์ฃผ์ ๋ค ๋๋ผ ๊ฒ ๊ฐ์๋ฐ, ๋ญ๊ฐ…. ๋ญ๊ฐ…… ๋ญ๊ฐ……..๋ญ๊ฐ…… ์์ฝ๋ค. ๊ทธ๋์ ๊ฐ์์ ๋ถ์ด์๋ ์์ ๋ก ๋ด์ฃผ๋ ํ๋ก์ ํธ๋ฅผ ์์ฃผ ํํํ๊ฒ ๋ง๋ค์ด์ ํ๋์ ์น ์ดํ๋ฆฌ์ผ์ด์
์ผ๋ก ๋ง๋ค์ด ๋ณด๋ ค๊ณ ํ๋ค! ๊ทธ๋ฌ๋ฉด ์ด๋ฒ ์ฃผ์ 2๊ฐ์ง ํ๋ก์ ํธ๋ฅผ ๋ง๋ค ์ ์๊ฒ ๋๋ค!