์ด ํ์ด์ง์ ์ํ๋ AI ์ด์์คํดํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์๋ฅผ ์์ฝํฉ๋๋ค
๋ฒ์ ๊ธฐ๋ก
- "usePathname ์ ํธ๋ฆฌํฐ ์ถ๊ฐ"v10.0.02026. 6. 23.
- "ํ์คํ ๋ฆฌ ์ด๊ธฐํ"v8.2.02026. 6. 22.
์ด ํ์ด์ง์ ์ฝํ ์ธ ๋ AI๋ฅผ ์ฌ์ฉํ์ฌ ๋ฒ์ญ๋์์ต๋๋ค.
์์ด ์๋ณธ ๋ด์ฉ์ ์ต์ ๋ฒ์ ์ ๋ณด๊ธฐ์ด ๋ฌธ์๋ฅผ ๊ฐ์ ํ ์์ด๋์ด๊ฐ ์์ผ์๋ฉด GitHub์ ํ ๋ฆฌํ์คํธ๋ฅผ ์ ์ถํ์ฌ ์์ ๋กญ๊ฒ ๊ธฐ์ฌํด ์ฃผ์ธ์.
๋ฌธ์์ ๋ํ GitHub ๋งํฌ๋ฌธ์์ Markdown์ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ
Preact ํตํฉ: usePathname ํ
๋ฌธ์
usePathname ํ
์ ๋ก์ผ์ผ ์ธ๊ทธ๋จผํธ๊ฐ ์ ๊ฑฐ๋ ํ์ฌ ๋ธ๋ผ์ฐ์ ์ ๊ฒฝ๋ก๋ช
(pathname)์ ๋ฐํํฉ๋๋ค. ์ด ํ
์ ๋ก์ผ์ผ ์ ๋์ฌ๋ฅผ ์๋์ผ๋ก ์ ๊ฑฐํ ํ์ ์์ด ์ด๋ค ๋ด๋น๊ฒ์ด์
ํญ๋ชฉ์ด ํ์ฑํ๋์ด ์๋์ง ํ์ธํ๋ ๋ฑ ๋ก์ผ์ผ ์ธ์ ๋ด๋น๊ฒ์ด์
์ ๊ตฌ์ถํ ๋ ์ ์ฉํฉ๋๋ค.
Preact์์ usePathname ๊ฐ์ ธ์ค๊ธฐ
์ฝ๋๋ฅผ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ
๊ฐ์
usePathname์ window.location.pathname์ ์ฝ๊ณ getPathWithoutLocale์ ํตํด ๋ก์ผ์ผ ์ ๋์ฌ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ popstate ์ด๋ฒคํธ(๋ค๋ก/์์ผ๋ก ๊ฐ๊ธฐ ๋ด๋น๊ฒ์ด์
)๋ฅผ ๋ฐ์์ํฌ ๋๋ง๋ค ์ปดํฌ๋ํธ๋ฅผ ๋ค์ ๋ ๋๋งํฉ๋๋ค. ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง(SSR) ์ค์๋ ๋น ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค.
์ฌ์ฉ๋ฒ
์ฝ๋๋ฅผ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ
๋ฐํ ๊ฐ
ํ ์ด๋ธ์ ๋ชจ๋ฌ๋ก ์ด์ด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ช ํํ๊ฒ ํ์ธ
| ํ์ | ์ค๋ช |
|---|---|
string | ๋ก์ผ์ผ ์ ๋์ฌ๊ฐ ์๋ ํ์ฌ ๊ฒฝ๋ก๋ช . ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง(SSR) ์ค์๋ ๋น ๋ฌธ์์ด์ ๋๋ค. |
๋์ ๋ฐฉ์
- ๋ก์ผ์ผ ์ ๊ฑฐ (Locale stripping): URL ์์ ๋ก์ผ์ผ ์ธ๊ทธ๋จผํธ๋ฅผ ์ ๊ฑฐํฉ๋๋ค(์:
/ko/dashboardโ/dashboard). - ๋ฐ์ํ:
popstate์ด๋ฒคํธ(๋ธ๋ผ์ฐ์ ๋ค๋ก / ์์ผ๋ก ๊ฐ๊ธฐ ๋ด๋น๊ฒ์ด์ ) ์ ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค. - SSR ์์ ์ฑ:
window๋ฅผ ์ฌ์ฉํ ์ ์์ ๋""๋ฅผ ๋ฐํํฉ๋๋ค. - ์ ๋ฆฌ (Cleanup): ์ปดํฌ๋ํธ ๋ง์ดํธ ํด์ ์
popstate๋ฆฌ์ค๋๊ฐ ์๋์ผ๋ก ์ ๊ฑฐ๋ฉ๋๋ค.
์์
์ฝ๋๋ฅผ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ
