kwonyongyong.log
๋ก๊ทธ์ธ
kwonyongyong.log
๋ก๊ทธ์ธ
[React] React Router Dom
๊ถ์ฉ์ค
ยท
2023๋ 12์ 6์ผ
ํ๋ก์ฐ
0
React
0
React Router Dom
๐ ์ ์
React Router Dom์ ์ฌ์ฉํ๋ฉด ์น ์ฑ์์ ๋์ ๋ผ์ฐํ ์ ๊ตฌํํ ์ ์๋ค. ๋ผ์ฐํ ์ด ์คํ ์ค์ธ ์ฑ ์ธ๋ถ์ ๊ตฌ์ฑ์์ ์ฒ๋ฆฌ๋๋ ๊ธฐ์กด ๋ผ์ฐํ ์ํคํ ์ฒ์ ๋ฌ๋ฆฌ React Router DOM์ ์ฑ ๋ฐ ํ๋ซํผ์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ๋ผ์ฐํ ์ ์ฉ์ดํ๊ฒ ํ๋ค.
๋ฆฌ์กํธ๋ SPA์ด๊ธฐ ๋๋ฌธ์ ํ๋์ index.html ํ ํ๋ฆฟ ํ์ผ์ ๊ฐ์ง๊ณ ์๋๋ฐ ์ด ํ๋์ ํ ํ๋ฆฟ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด์ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ฅผ ์ด index.html ํ ํ๋ฆฟ์ ๋ฃ์ผ๋ฏ๋ก ํ์ด์ง๋ฅผ ๋ณ๊ฒฝํด์ฃผ๊ฒ ๋๋ค. ์ด ๋ ์ด React Router DOM ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ์ปดํฌ๋ํธ๋ก ๋ผ์ฐํ /ํ์์ ํ๊ณ ๋ ๋๋งํ๋๋ฐ ๋์์ ์ฃผ๊ฒ ๋๋ค.
โ๏ธํน์ง
- ์ค์ฒฉ ๋ผ์ฐํ (Nested Routes)
์ด๊ฒ์ React Router์ ๊ฐ์ฅ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ ์ค ํ๋์ด๋ฉฐ ๋ณต์กํ ๋ ์ด์์ ์ฝ๋๋ฅผ ์ด์ง๋ฝํ ํ์๊ฐ ์๋ค. ๋๋ถ๋ถ์ ๋ ์ด์์์ URL์ ์ธ๊ทธ๋จผํธ์ ์ฐ๊ฒฐ๋๋ฉฐ React Router๋ ์ด๋ฅผ ์์ ํ ์์ฉํ๋ค.
- Outlet
์์ ๊ฒฝ๋ก ์์๋ฅผ ๋ ๋๋งํ๋ ค๋ฉด ๋ถ๋ชจ ๊ฒฝ๋ก ์์์์ ์ ์ฌ์ฉํด์ผ ํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํ์ ๊ฒฝ๋ก๊ฐ ๋ ๋๋ง๋ ๋ ์ค์ฒฉ๋ UI๊ฐ ํ์๋ ์ ์๊ณ ๋ถ๋ชจ ๋ผ์ฐํธ๊ฐ ์ ํํ ์ผ์นํ๋ฉด ์์ ์ธ๋ฑ์ค ๋ผ์ฐํธ๋ฅผ ๋ ๋๋งํ๊ฑฐ๋ ์ธ๋ฑ์ค ๋ผ์ฐํธ๊ฐ ์์ผ๋ฉด ์๋ฌด๊ฒ๋ ๋ ๋๋งํ์ง ์๋๋ค.
- useNavigate
๊ฒฝ๋ก๋ฅผ ๋ฐ๊ฟ์ค๋ค.
- useParams
:style ๋ฌธ๋ฒ์ path ๊ฒฝ๋ก์ ์ฌ์ฉํ์๋ค๋ฉด useParams()๋ก ์ฝ์ ์ ์๋ค. ์๋๋ :invoiceId๊ฐ ๋ฌด์์ธ์ง ์๊ธฐ์ํด usePrams๋ฅผ ์ฌ์ฉ
- useLocation
์ด Hooks ๋ ํ์ฌ ์์น ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ฉฐ ํ์ฌ ์์น๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์ผ๋ถ side effect๋ฅผ ์ํํ๋ ค๋ ๊ฒฝ์ฐ์ ์ ์ฉํ๋ค.
- useRoutes
useRoutes Hooks๋ ์ ์ ๊ธฐ๋ฅ์ ์ผ๋ก ๋์ผํ์ง๋ง ์์ ๋์ JavaScript ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฝ๋ก๋ฅผ ์ ์ํ๋ค. ์ด๋ฌํ ๊ฐ์ฒด๋ ์ผ๋ฐ ์์์ ๋์ผํ ์์ฑ์ ๊ฐ์ง๋ง JSX๊ฐ ํ์ํ์ง ์๋ค.
๊ถ์ฉ์ค
Brendan Eich, Jordan Walke, Evan You, ๊ถ์ฉ์ค
ํ๋ก์ฐ
์ด์ ํฌ์คํธ
[React] useRef
๋ค์ ํฌ์คํธ
๐[TypeScript ๋ง์คํฐ with Webpack & React] Step01.ํ์ ์ด๋ ธํ ์ด์ ๊ธฐ์ด
0๊ฐ์ ๋๊ธ
๋๊ธ ์์ฑ