Nuxt/docs/content/3.docs/1.usage/10.teleports.md
Daniel Roe fdd38f958c
feat(nitro): support for rendering ssr teleports to body (#3909)
Co-authored-by: pooya parsa <pyapar@gmail.com>
2022-04-01 16:06:48 +02:00

35 lines
888 B
Markdown

# Teleports
Vue 3 provides the [`<Teleport>` component](https://vuejs.org/guide/built-ins/teleport.html) which allows content to be rendered elsewhere in the DOM, outside of the Vue application.
The `to` target of `<Teleport>` expects a CSS selector string or an actual DOM node. Nuxt currently has SSR support for teleports to `body` only, with client-side support for other targets using a `<ClientOnly>` wrapper.
## Example: body teleport
```vue
<template>
<button @click="open = true">
Open Modal
</button>
<Teleport to="body">
<div v-if="open" class="modal">
<p>Hello from the modal!</p>
<button @click="open = false">
Close
</button>
</div>
</Teleport>
</template>
```
## Example: client-side teleport
```vue
<ClientOnly>
<Teleport to="#some-selector">
<!-- content -->
</Teleport>
</ClientOnly>
</template>
```