Navigation
Last updated
Last updated
History
History.pushState
Link
NavLink
Navigate
useNavigate
์ธํฐํ์ด์ค๋ ๋ธ๋ผ์ฐ์ ์ ์ธ์ ๊ธฐ๋ก, ์ฆ ํ์ฌ ํ์ด์ง๋ฅผ ๋ถ๋ฌ์จ ํญ ๋๋ ํ๋ ์์ ๋ฐฉ๋ฌธ ๊ธฐ๋ก์ ์กฐ์ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
HTML ๋ฌธ์์์, history.pushState() ๋ฉ์๋๋ ๋ธ๋ผ์ฐ์ ์ ์ธ์ ๊ธฐ๋ก ์คํ์ ํญ๋ชฉ์ ์ถ๊ฐํฉ๋๋ค.
React ์์ ํ์ด์ง ์ ํํ ๋ ์ฌ์ฉํ๋ react-router ๋ history.push ๋ฅผ ํตํด ๋ง์น SSR ์ฒ๋ผ ๋ธ๋ผ์ฐ์ ์ฃผ์๋ฅผ ๋ฐ๊ฟ์ฃผ๊ณ ๋์์ Root ์๋ฆฌ๋จผํธ์ ๋ด์ฉ๋ฌผ๋ ๋ฐ๊ฟ์ค๋ค. ์ด๊ฑธ ์์ JS ๋ก ๊ตฌํํ๊ณ ์ ํ๋ค๋ฉด history.pushState ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
History.pushState ๋ ํ์ด์ง ์ด๋ ์์ด ์ฃผ์๋ง ๋ฐ๊ฟ์ค๋ค. (๋ธ๋ผ์ฐ์ ์ ๋ค๋ก๊ฐ๊ฐ ๋ฒํผ์ด ํ์ฑํ ๋๋ค.) ๋ธ๋ผ์ฐ์ ํ์ด์ง๋ฅผ ์ด๋ํ๊ฒ ๋๋ฉด window.onpopstate ๋ผ๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ฒ ๋๋๋ฐ, pushState ๋ฅผ ํ์๋๋ popstate ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ง์๊ณ , ๋ค / ์์ผ๋ก ๊ฐ๊ธฐ
๋ฅผ ํด๋ฆญ ํ์๋ popstate ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค. ์ฆ, pushState ์ popstate ๋์ ์ด์ฉํ์ฌ SPA ์ ํ์ด์ง ์ ํ์ ๊ตฌํํ ์ ์๋ค.
<a>
ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค?์๋๋ฉด
<a>
๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด์ง ์ด๋ํ๊ฒ ๋๋ฉด ํ์ด์ง ์ ์ฒด๋ฅผ ๋ค์ ๋ ๋๋ง ํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ React Router ๋ Link
ํน์ ์ฃผ์๋ก ์ด๋ํด์ฃผ๋ ๊ธฐ๋ฅ์ , Navigation
ํน์ ํ๋์ ํ์ ๋ ํด๋น ์ฃผ์๋ก ์ด๋ ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ค๋ค.
Link
์ NavLink
์ ์ฐจ์ด์ By default, an active class is added to a
<NavLink>
component when it is active so you can use CSS to style it.
It provides useful context for assistive technology like screen readers
ํ์ฑํ๋ ํ์ด์ง์ ๊ธฐ๋ณธ์ ์ผ๋ก active
class๋ฅผ ์ ๊ณตํด์ค๋ค. aria-current
๋ํ ์ง์ํด์ค๋ค.
์ด๋ค ์์ ์ ์ํํ๊ณ ๋ฆฌ๋ค์ด๋ ์ ์ ๋ฐ์์ํฌ ๋ ์ฌ์ฉ (Ex.Logout)
๐ Redirect ์ฌ์ฉ์๊ฐ ์ฒ์ ์์ฒญํ URL์ด ์๋, ๋ค๋ฅธ URL๋ก ๋ณด๋ด๋ ๊ฒ์ ์๋ฏธํ๋ค. ์๋ฅผ๋ค์ด, ์น์ฌ์ดํธ A์ ์ฃผ์๋ก ์ ์ํ ์ฌ์ฉ์๋ฅผ ์น์ฌ์ดํธ B๋ก ์ด๋์ํค๋ ๊ฒ์ ๋งํ๋ค.
ReferenceError: Request is not defined
MSW ๋ฐฐ์ธ ๋ ์ฌ์ฉํ๋ ํด๋ฆฌํ whatwg-fetch import ํด์ ์ฌ์ฉํ์. โ ์ ํํ ์ด์ ๋... ์์ง ์ดํด๋์ง ์์๋ค. ํน์ํ ์ํฉ์ด๋ผ๊ณ ํ๋ค.
์ด๋ค ์์ ์ ์ํํ๊ณ ๋ฆฌ๋ค์ด๋ ์ ์ ๋ฐ์์ํฌ ๋ ์ฌ์ฉ (Ex.Logout)
Hook์ ์ด์ฉํด redirect์ ํธ๋ฆฌํ๊ฒ ์ฒ๋ฆฌ
Navigate ๋ณด๋ค
useNavigate
๋ ๋ง์ด ์ฌ์ฉํ๋ค. by. ์ฝ๋ฉ์์ ์ผ์ด
true
: navigate์ ์ ํ ์ฃผ์๋ก ์ด๋ํ ํ ๋ค๋ก๊ฐ๊ธฐ
๋ฅผ ๋ฐฉ์งํ๋ ์ต์
false
: navigate์ ์ ํ ์ฃผ์๋ก ์ด๋ํ ํ ๋ค๋ก๊ฐ๊ธฐ
๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ต์
(Default)
navigate์ ์ ํ ์ฃผ์๋ก ์ด๋ํ ํ state ์ ๋ฌ ํด ์ค ์ ์๋ค.
์ ๋ฌ ๋ฐ์ state๋ useLocation
Hook์ ์ด์ฉํด ์ฌ์ฉ ํ ์ ์๋ค.