<NuxtLink>

<NuxtLink> 는 Vue Router의 <RouterLink> 컴포넌트와 HTML 태그를 대체할 수 있다. <a> 링크가 내부 인지 외부 인지 지능적으로 결정하고 그에 따라 사용 가능한 최적화(프리페칭, 기본 속성 등)를 사용하여 링크를 렌더링한다.

 

내부 라우팅

이 예에서는 <NuxtLink>를 사용하여 애플리케이션의 다른 페이지에 연결한다.

<!
pages/index.vue
-->

<template>
  <NuxtLink to="/about">
    About page
  </NuxtLink>
  <!-- <a href="/about">...</a> (+Vue Router & prefetching) -->
</template>

 

외부 라우팅

이 예에서는 <NuxtLink> 컴포넌트를 사용하여 웹 사이트에 연결한다.

<!--
app.vue
-->

<template>
  <NuxtLink to="https://nuxtjs.org">
    Nuxt website
  </NuxtLink>
  <!-- <a href="https://nuxtjs.org" rel="noopener noreferrer">...</a> -->
</template>

 

target 및 rel 속성

이 예에서는 <NuxtLink> 를 target, rel 및 noRel 속성과 같이 사용한다.

<!--
app.vue
-->

<template>
  <NuxtLink to="https://twitter.com/nuxt_js" target="_blank">
    Nuxt Twitter
  </NuxtLink>
  <!-- <a href="https://twitter.com/nuxt_js" target="_blank" rel="noopener noreferrer">...</a> -->

  <NuxtLink to="https://discord.nuxtjs.org" target="_blank" rel="noopener">
    Nuxt Discord
  </NuxtLink>
  <!-- <a href="https://discord.nuxtjs.org" target="_blank" rel="noopener">...</a> -->

  <NuxtLink to="https://github.com/nuxt" no-rel>
    Nuxt GitHub
  </NuxtLink>
  <!-- <a href="https://github.com/nuxt">...</a> -->

  <NuxtLink to="/contact" target="_blank">
    Contact page opens in another tab
  </NuxtLink>
  <!-- <a href="/contact" target="_blank" rel="noopener noreferrer">...</a> -->
</template>

 

Props

  • to: Vue Router의 모든 URL 또는 경로 위치 객체.
  • href: to 의 별칭입니다 to 와 함께 사용하면 href  가 무시된다.
  • target: target 링크에 적용할 속성 값.
  • rel: rel 링크에 적용할 속성 값. 외부 링크의 경우 기본값은  "noopener noreferrer" 입니다.
  • noRel: true 로 설정하면 링크에 rel 속성이 추가되지 않는다.
  • activeClass: 액티브 링크에 적용할 클래스입니다. 내부 링크에서 Vue Router의 active-class 속성과 동일하게 작동한다 . 기본값은 Vue Router의 기본값( "router-link-active") 이다.
  • exactActiveClass: 정확한 활성 링크에 적용되는 클래스입니다. 내부 링크에서 Vue Router의 exact-active-class 속성 과 동일하게 작동한다 . 기본값은 Vue Router의 기본값 "router-link-exact-active" 이다.
  • replace: 내부 링크에서 Vue Router의 replace 속성과 동일하게 작동한다.
  • ariaCurrentValue: aria-current 는 정확한 활성 링크에 적용할 속성 값이다. 내부 링크에서 Vue Router의 aria-current-value 속성과 동일하게 작동한다.
  • external: 링크를 강제로 외부( true) 또는 내부( false)로 간주합니다. 이는 극단적인 경우를 처리하는 데 도움이된다.
  • prefetchnoPrefetch : 뷰 포트에 들어가는 링크에 대해 자산 프리페치를 활성화할지 여부다.
  • prefetchedClass: 프리패치된 링크에 적용할 클래스다.
  • custom: <NuxtLink>콘텐츠를 <a>요소로 래핑해야 하는지 여부다. 링크가 렌더링되는 방식과 링크를 클릭할 때 탐색이 작동하는 방식을 완전히 제어할 수 있다. Vue Router의 custom 속성과 동일하게 작동한다.

 

기본값 덮어쓰기

defineNuxtLink를 사용하여 고유한 링크 컴포넌트를 만들어 <NuxtLink> 기본값을 덮어쓸 수 있다.

// components/MyNuxtLink.ts

export default defineNuxtLink({
  componentName: 'MyNuxtLink',
  /* see signature below for more */
})

새 기본값을 사용하여 평소와 같이 <MyNuxtLink> 컴포넌트를 사용할 수 있다.

 

defineNuxtLink Signature

defineNuxtLink({
  componentName?: string;
  externalRelAttribute?: string;
  activeClass?: string;
  exactActiveClass?: string;
  prefetchedClass?: string;
  trailingSlash?: 'append' | 'remove'
}) => Component
  • componentName: 정의된 <NuxtLink> 컴포넌트의 이름이다.
  • externalRelAttributerel: 외부 링크에 적용되는 기본 속성 값이다. 기본값은 "noopener noreferrer". 비활성화하려면 "" 로 설정한다 .
  • activeClass: 활성 링크에 적용할 기본 클래스입니다. Vue Router의 linkActiveClass 옵션과 동일하게 작동한다 . 기본값은 Vue Router의 기본값( "router-link-active") 이다.
  • exactActiveClass: 정확한 활성 링크에 적용할 기본 클래스입니다. Vue Router의 linkExactActiveClass옵션과 동일하게 작동한다 . 기본값은 Vue Router의 기본값( "router-link-exact-active") 이다.
  • prefetchedClass: 프리패치된 링크에 적용할 기본 클래스다.
  • trailingSlash: href 에서 후행 슬래시를 추가하거나 제거하는 옵션입니다. 설정되지 않거나 유효한 값 append 또는 remove 과 일치하지 않으면 무시된다.

'Nuxt 공식문서 번역 > Components' 카테고리의 다른 글

<NuxtErrorBoundary>  (0) 2023.12.12
<NuxtLoadingIndicator>  (0) 2023.12.12
<NuxtLayout>  (0) 2023.12.11
<NuxtPage>  (0) 2023.12.11
<NuxtClientFallback>  (0) 2023.12.11
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유