Next.js Link를 확장한 라우팅 링크 컴포넌트입니다. 클릭 시 RouteLoading의 로딩 상태를 자동으로 활성화합니다.
@coldsurfers/ocean-road/next에서 import합니다.
GlobalLink와 RouteLoading은 쌍으로 사용합니다. RouteLoading이 렌더 트리에 존재해야 로딩 상태가 표시됩니다.
initializeGlobalLinkRedirectMapNext.js 미들웨어에서 경로를 리다이렉트하는 경우, GlobalLink는 href와 실제 렌더되는 경로가 다르다는 것을 알지 못합니다. 예를 들어 미들웨어가 / → /live-events로 리다이렉트할 때, 사용자가 /live-events에 있는 상태에서 href="/" 링크를 클릭하면 페이지 이동은 없지만 RouteLoading 스피너가 표시됩니다.
이를 해결하려면 initializeGlobalLinkRedirectMap으로 리다이렉트 매핑을 등록합니다. 'use client' 클라이언트 컴포넌트 내에서 호출해야 합니다.
등록 후 GlobalLink는 href="/"를 /live-events로 해석하여, 현재 경로와 동일하면 로딩 상태를 활성화하지 않습니다.
Next.js LinkProps와 AnchorHTMLAttributes<HTMLAnchorElement>를 모두 상속합니다.
| prop | 타입 | 필수 | 설명 |
|---|---|---|---|
href |
string | Url |
✅ | 이동할 경로 |
children |
ReactNode |
— | 링크 내용 |
target |
string |
— | _blank 등 링크 타겟. 지정 시 로딩 상태를 활성화하지 않습니다. |
onClick |
MouseEventHandler |
— | 클릭 핸들러 (내부 핸들러와 함께 실행됩니다) |