Vue 3 provides the <Teleport> component 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

  <button @click="open = true">
    Open Modal
  <Teleport to="body">
    <div v-if="open" class="modal">
      <p>Hello from the modal!</p>
      <button @click="open = false">

Example: Client-side Teleport

    <Teleport to="#some-selector">
      <!-- content -->
Read and edit a live example in Examples > App > Teleport.
Edit this page on GitHub Updated at Mon, Oct 3, 2022