Router
createBrowserRouter()
BrowserRouter๋ฅผ ์์ฑํ๋ ํจ์๋ก, v6์์ ์๋กญ๊ฒ ์ถ๊ฐ๋ ๋ผ์ฐํ ์ค๊ณ ๋ฐฉ๋ฒ
ํด๋น ๋ผ์ฐํ ์ค๊ณ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด v6.4์ ์ถ๊ฐ๋ Data APIs๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
Data APIs๋?
๋ผ์ฐํฐ๊ฐ ๋ ๋๋งํ๋ ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๊ธฐ๋ฅ ๋ฑ, ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ์ ๊ด๋ จ๋ ์๋ก์ด ๊ธฐ๋ฅ๋ค์ด ๋๊ฑฐ ์ถ๊ฐ ๋์๋ค.
routes โ ๋ผ์ฐํธ ๊ฐ์ฒด ๋ฐฐ์ด
basename โ ์ฑ์ ๊ธฐ๋ณธ ์ด๋ฆ, '/app' ์ด๋ผ๊ณ ์ค์ ์ '/'๋ '/app'์ ๊ฐ๋ฆฌํจ๋ค.
Routes.tsx
ํ ์คํธ ํ๊ฒฝ์์๋ ๋ผ์ฐํธ ์ ๋ณด๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ๋ผ์ฐํธ ๊ฐ์ฒด ๋ฐฐ์ด์ ๋ณ๋์ ๋ชจ๋๋ก ๋ถ๋ฆฌํด์ ๊ด๋ฆฌ
routes.tsx
routes.tsx
createRoutesFromElements()
React Element ๋ฐฐ์ด์ ๋ผ์ฐํธ ๊ฐ์ฒด ๋ฐฐ์ด๋ก ๋ณํํ๋ ํจ์
createBrowserRouter()๋ฅผ ์ฌ์ฉํ ๋ ์ด์ ์ ์ฌ์ฉ๋๋ JSX ํํ๋ก ๋ผ์ฐํฐ๋ฅผ ๊ตฌ์ฑํ ์ ์๋ค.
Usage
createMemoryRouter()
Test ํ๊ฒฝ์์ createBrowserRouter ๋์
createMemoryRouter
๋ฅผ ์ฌ์ฉํ๋ค.
initialEntries โ ์ด๊ธฐ ์ํธ๋ฆฌ ๋ชฉ๋ก ์ค์ , ์ฆ ํ ์คํธํ ํ์ด์ง์ ์ฒซ ๋ ๋๋ง ๊ฒฝ๋ก ์ค์
๋ฐฐ์ด์ธ ์ด์ ๋ ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ ์คํ๊ณผ ๋์ผ, (๋ค๋ก๊ฐ๊ธฐ, ์์ผ๋ก๊ฐ๊ธฐ ํ ์คํธ๋ฅผ ํ๊ธฐ ์ํจ)
initialIndex โ ์ด๊ธฐ ์ํธ๋ฆฌ ๋ชฉ๋ก[๋ฐฐ์ด] ์ค ์ธ๋ฑ์ค๋ฅผ ํตํด ๊ฒฝ๋ก๋ฅผ ์ ํ
ํด๋น ํจ์๋ ์ฌ์ฌ์ฉ์ฑ์ ๋ํ๊ธฐ ์ํด ํจ์๋ก ์ถ์ถํ์.
MemoryRouter VS createMemoryRouter()
๋ ๋ฐฉ๋ฒ ๋ชจ๋ ํ ์คํธ ํ๊ฒฝ์์ ๋ผ์ฐํ ์ ๊ตฌํํ๋๋ฐ ์ฌ์ฉ๋๋ค.
createMemoryRouter()
๋ ์ค์ ๋ก ์ฌ์ฉ๋๋ ์ ์ฒด ๋ผ์ฐํ
์ ๋ณด๋ฅผ ๊ทธ๋๋ก ๊ฐ์ ธ์์ ๊ตฌํํ๊ธฐ ๋๋ฌธ์ ์ ์ฒด์ ์ธ ๋ผ์ฐํ
์ํธ์์ฉ์ ํ
์คํธํ ๋ ์ ํฉํ ๊ฒ ๊ฐ๋ค.
๋ฐ๋ฉด MemoryRouter
๋ ๋ผ์ฐํธ๋ฅผ ์ฃผ์
๋ฐ๋ ์์ผ๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ปค์คํ
ํ๊ธฐ ์ฝ๊ณ , ์ข ๋ ์ ์ฐํ ํ
์คํธ๋ฅผ ์์ฑํ ์ ์์ด์ ํน์ ๋ผ์ฐํ
์๋๋ฆฌ์ค๋ฅผ ํ
์คํธํ ๋ ์ ํฉํ ๊ฒ ๊ฐ๋ค.
Last updated