Navigation
Last updated
Last updated
์น ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ์ฌ์ฉ์๊ฐ ๋ฉ๋ด, ๋งํฌ, ๋ฒํผ์ ํตํด ๋ค๋ฅธ ํ๋ฉด์ด๋ ๋ค๋ฅธ ํ์ด์ง๋ก ์ด๋ํ๋ ๊ธฐ๋ฅ์ ์๋ฏธ
React Router๋ ๋ฅผ ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉํ์ฌ Navigation์ ์ฒ๋ฆฌํ๋ ๋ค์ํ ์ปดํฌ๋ํธ, ํ ์ ์ ๊ณตํ๋ค.
์ฌ์ฉ์๊ฐ ํด๋ฆญํ์ฌ ๋ค๋ฅธ ํ๋ฉด์ผ๋ก ์ด๋ํ ์ ์๊ฒ ํด์ฃผ๋ ์ปดํฌ๋ํธ ๊ฒฐ๊ณผ์ ์ผ๋ก
a
์์๊ฐ ๋ ๋๋ง ๋๋ค.
replace โ ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ ์คํ์ ์ถ๊ฐํ์ง ์๊ณ ๋์ฒดํ๋ค. (๋ค๋ก๊ฐ๊ธฐ ์ ๊ฑด๋๋)
state โ ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ ์คํ์ ๋ฐ์ดํฐ(state)๋ฅผ ์ถ๊ฐํ๋ค. ์ด์ ํ์ด์ง์ ์ ๋ฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅ
to(์ ๋๊ฒฝ๋ก) โ ์ด๋ํ ๊ฒฝ๋ก๋ฅผ ์์ฑ, ๊ฐ์ฒด๋ก ์์ฑ์, ๊ฒฝ๋ก๋ช , ์ฟผ๋ฆฌ, ํด์ฌ ๊ฐ์ ๋ฐ๋ก ์ง์
reloadDocument โ ๊ฐ์ด true์ด๋ฉด ์ด๋ํ ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ HTML์ ๋ฐ์์ค๋๋ก ๊ฐ์
preventScrollReset โ ๊ฐ์ด true์ด๋ฉด, ์ด๋ ํ ์คํฌ๋กค ์์น๋ฅผ ์ ์งํ๋ค. (Link ํด๋ฆญ ํ์ )
<ScrollRestoration>
์ปดํฌ๋ํธ๋ฅผ ์ด์ฉํ๋ฉด ์ ์ญ์ ์ผ๋ก ํ์ด์ง ์ด๋์ ์คํฌ๋กค ์ ์ง๊ฐ ๊ฐ๋ฅํ๋ค.
relative โ to
๊ฐ์ ๊ฒฝ๋ก ๊ธฐ์ค์ ์๋๊ฒฝ๋ก๋ก ๋ณ๊ฒฝํ๋ค.
route โ ํ์ฌ ๋ผ์ฐํธ ๊ฒฝ๋ก๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ ๊ฒฝ๋ก ์ง์
path โ ํ์ฌ ํ์ด์ง์ URL ๊ฒฝ๋ก๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ ๊ฒฝ๋ก ์ง์
์ ๋๊ฒฝ๋ก ์ฒ๋ผ ์ ์ผ๋ฉด /sample
๊ทธ๋ฅ ์ ๋๊ฒฝ๋ก์ฒ๋ผ ์์ฉํ๋ค. ๋ฐ๋์ ./
์ ๊ฐ์ด ์๋๊ฒฝ๋ก๋ก ์์ฑํด์ผํจ
<Link /> ์ปดํฌ๋ํธ์์
active
,pending
์ฌ๋ถ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ ๋ฒ์ ,
ํ์ฌ ๊ฒฝ๋ก์ <NavLink to={๊ฒฝ๋ก} />
๊ฐ ์ผ์น ํ๋ค๋ฉด active ์์ฑ์ด ํ์ฑํ ๋๋ค.
active ์์ฑ์ด ํ์ฑํ๋๋ฉด .active
ํด๋์ค์ aria-current="page"
์์ฑ์ด ํ ๋น๋๋ค.
๋งํฌ๋ฅผ ํด๋ฆญ ํ ํ์ด์ง ์ ํ์ด ์๋ฃ๋๊ธฐ ์ ๊น์ง pending
์์ฑ์ด ํ์ฑํ ๋๋ค.
์ฆ, ๋ก๋ฉ์ค์์ ๋ํ๋ด๋ ์์ฑ
๊ฒฝ๋ก๊ฐ ์ ํํ ์ผ์นํ๋ ๊ฒฝ์ฐ์๋ง active
๋ฅผ ํ์ฑํ ์ํจ๋ค.
์ฆ, ๋์ ์ธ๊ทธ๋จผํธ ๋ฐ ํ์ ๋ผ์ฐํธ ํ์ด์ง์์๋ active
๊ฐ ๋นํ์ฑํ๋๋ค.
Redirect์ฉ ์ปดํฌ๋ํธ์ด๋ฉฐ, ํด๋น ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ๋ ํ์ด์ง๋ฅผ ์ด๋์ํจ๋ค.
์กฐ๊ฑด๋ถ ๋ ๋๋ง ์ํฉ์์, ํน์ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋์์ ๋ ๋ฆฌ๋ค์ด๋ ํธ๋ฅผ ํด์ผ ํ๋ ๊ฒฝ์ฐ ์์ฃผ ์ฌ์ฉ๋๋ค.
ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ํ์ด์ง๋ฅผ ์ด๋ํ ์ ์๋ ํจ์๋ฅผ ๋ฐํํ๋ ํ
delta โ ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ ์คํ ๊ธฐ์ค์ผ๋ก ํ์ฌ ์์น์์ ์ด๋ํ ์์น์ ๋ณํ๋ (-1 ์ด๋ฉด ๋ค๋ก๊ฐ๊ธฐ)
React Router์ ํ์ฌ ์์น ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ ํ
state โ ๋ผ์ฐํฐ๊ฐ ์ ๋ณด๋ฅผ ์ ๋ฌํ๊ณ ๊ณต์ ํ๋ ๋ฐ์ดํฐ, ์ด๋ํ ๋ค์ ํ์ด์ง์ ์ ๋ฌํ๊ฑฐ๋, ์ด์ ํ์ด์ง์์ ์ ๋ฌํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ฌ ์ ์๋ค.
key โ ๋ผ์ฐํฐ์ ์์น ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๊ณ ์ ์๋ณ์, React Router๊ฐ ์์น๋ฅผ ์ ๋ฐ์ดํธํ ๋ ์ฌ์ฉ