--- title: "" description: "Nuxt provides component to handle any kind of links within your application." links: - label: Source icon: i-simple-icons-github to: https://github.com/nuxt/nuxt/blob/main/packages/nuxt/src/app/components/nuxt-link.ts size: xs --- ::callout `` is a drop-in replacement for both Vue Router's `` component and HTML's `` tag. It intelligently determines whether the link is _internal_ or _external_ and renders it accordingly with available optimizations (prefetching, default attributes, etc.) :: ## Internal Routing In this example, we use `` component to link to another page of the application. ```vue [pages/index.vue] ``` ## External Routing In this example, we use `` component to link to a website. ```vue [app.vue] ``` ## `target` and `rel` Attributes In this example, we use `` with `target`, `rel`, and `noRel` props. ```vue [app.vue] ``` ## Props - `to`: Any URL or a [route location object](https://router.vuejs.org/api/interfaces/RouteLocation.html) from Vue Router - `href`: An alias for `to`. If used with `to`, `href` will be ignored - `target`: A `target` attribute value to apply on the link - `rel`: A `rel` attribute value to apply on the link. Defaults to `"noopener noreferrer"` for external links. - `noRel`: If set to `true`, no `rel` attribute will be added to the link - `activeClass`: A class to apply on active links. Works the same as [Vue Router's `active-class` prop](https://router.vuejs.org/api/interfaces/RouterLinkProps.html#Properties-activeClass) on internal links. Defaults to Vue Router's default (`"router-link-active"`) - `exactActiveClass`: A class to apply on exact active links. Works the same as [Vue Router's `exact-active-class` prop](https://router.vuejs.org/api/interfaces/RouterLinkProps.html#Properties-exactActiveClass) on internal links. Defaults to Vue Router's default `"router-link-exact-active"`) - `replace`: Works the same as [Vue Router's `replace` prop](https://router.vuejs.org/api/interfaces/RouteLocationOptions.html#Properties-replace) on internal links - `ariaCurrentValue`: An `aria-current` attribute value to apply on exact active links. Works the same as [Vue Router's `aria-current-value` prop](https://router.vuejs.org/api/interfaces/RouterLinkProps.html#Properties-ariaCurrentValue) on internal links - `external`: Forces the link to be considered as external (`true`) or internal (`false`). This is helpful to handle edge-cases - `prefetch` and **noPrefetch**: Whether to enable prefetching assets for links that enter the view port. - `prefetchedClass`: A class to apply to links that have been prefetched. - `custom`: Whether `` should wrap its content in an `` element. It allows taking full control of how a link is rendered and how navigation works when it is clicked. Works the same as [Vue Router's `custom` prop](https://router.vuejs.org/api/interfaces/RouterLinkProps.html#Properties-custom) ::callout Defaults can be overwritten, see [overwriting defaults](#overwriting-defaults) if you want to change them. :: ## Overwriting Defaults You can overwrite `` defaults by creating your own link component using `defineNuxtLink`. ```js [components/MyNuxtLink.ts] export default defineNuxtLink({ componentName: 'MyNuxtLink', /* see signature below for more */ }) ``` You can then use `` component as usual with your new defaults. ### `defineNuxtLink` Signature ```ts defineNuxtLink({ componentName?: string; externalRelAttribute?: string; activeClass?: string; exactActiveClass?: string; prefetchedClass?: string; trailingSlash?: 'append' | 'remove' }) => Component ``` - `componentName`: A name for the defined `` component. - `externalRelAttribute`: A default `rel` attribute value applied on external links. Defaults to `"noopener noreferrer"`. Set it to `""` to disable - `activeClass`: A default class to apply on active links. Works the same as [Vue Router's `linkActiveClass` option](https://router.vuejs.org/api/interfaces/RouterOptions.html#Properties-linkActiveClass). Defaults to Vue Router's default (`"router-link-active"`) - `exactActiveClass`: A default class to apply on exact active links. Works the same as [Vue Router's `linkExactActiveClass` option](https://router.vuejs.org/api/interfaces/RouterOptions.html#Properties-linkExactActiveClass). Defaults to Vue Router's default (`"router-link-exact-active"`) - `prefetchedClass`: A default class to apply to links that have been prefetched. - `trailingSlash`: An option to either add or remove trailing slashes in the `href`. If unset or not matching the valid values `append` or `remove`, it will be ignored. :link-example{to="/docs/examples/routing/pages"}