Table des matières
✅ Ce que fait les téléportations
? Sélecteur cible: to
? Cas d'utilisation courante: boîte de dialogue modale
⚠️ Remarques importantes
✅ Quand utiliser la téléportation
Maison interface Web Voir.js Comment utiliser les téléportations dans Vue 3?

Comment utiliser les téléportations dans Vue 3?

Jul 26, 2025 am 04:32 AM

Teleport est un composant intégré de Vue 3 pour rendre une partie du modèle à d'autres emplacements du DOM. 1. Il spécifie la position cible à travers l'attribut, tel que le corps ou le # modal-container; 2. Il est souvent utilisé pour résoudre les problèmes d'affichage causés par le débordement de l'élément parent ou l'index z, etc.; 3. Les événements et la réactivité fonctionnent toujours normalement malgré le changement de position DOM; 4. Il est nécessaire de s'assurer que l'élément cible existe, sinon le contenu ne sera pas rendu; 5. Faites attention à l'accessibilité lors de l'utilisation, comme la gestion de la mise au point et les attributs ARIA, et finalement obtenir une disposition flexible qui est séparée du niveau des composants.

Comment utiliser les téléportations dans Vue 3?

Teleport est un composant VUE 3 intégré qui vous permet de rendre une partie du modèle de votre composant dans un emplacement différent dans le DOM - généralement en dehors de la structure du composant parent. Ceci est particulièrement utile pour des choses comme les modaux, les toolstips, les listes déroulantes ou les notifications qui doivent être positionnées au niveau supérieur (comme body ) pour éviter les problèmes de coupure CSS ou d'index z.

Comment utiliser les téléportations dans Vue 3?

Voici comment utiliser Teleport dans Vue 3:


✅ Ce que fait les téléportations

Par défaut, les composants rendent dans la structure DOM de leur parent. Mais parfois, vous voulez qu'un composant enfant (comme un modal) "éclate" visuellement de son parent. C'est là que Teleport entre en jeu.

Comment utiliser les téléportations dans Vue 3?
 <mpelate>
  <div class = "modal-button">
    <bouton @ click = "open = true"> Ouvrir le modal </ bouton>

    <! - Cela sera déplacé en dehors de la structure DOM actuelle ->
    <Téléportation à = "body">
      <div v-if = "open" class = "modal">
        <p> Il s&#39;agit d&#39;un modal </p>
        <bouton @ click = "open = false"> Close </ftont>
      </div>
    </ Téléporter>
  </div>
</ template>

<Configuration du script>
import {ref} de &#39;Vue&#39;
const open = ref (false)
</cript>

Dans cet exemple, même si le <Teleport> est imbriqué à l'intérieur .modal-button , le contenu modal sera annexé directement au <body> .


? Sélecteur cible: to

Le to prop spécifiez où le contenu doit être déplacé dans le DOM.

Comment utiliser les téléportations dans Vue 3?
 <Téléportation vers = "# modal-container">
  <div class = "modal"> Bonjour de Teleport! </div>
</ Téléporter>
  • Accepte tout sélecteur CSS valide: body , #app , .modals , etc.
  • Doit pointer vers un élément existant dans le DOM.
  • Si la cible n'existe pas, le contenu ne rendra pas (pas d'erreur par défaut).

? CONSEIL: Utilisez body pour les superpositions complètes comme les modaux ou les chargeurs.


? Cas d'utilisation courante: boîte de dialogue modale

Voici un exemple plus réaliste d'un modal réutilisable à l'aide de Teleport .

 <! - modal.vue ->
<mpelate>
  <Téléportation à = "body">
    <div v-if = "show" class = "modal-overlay" @ click = "onclose">
      <div class = "modal" @ click.stop>
        <h3> {{title}} </h3>
        <p> {{message}} </p>
        <bouton @ click = "onclose"> ok </futton>
      </div>
    </div>
  </ Téléporter>
</ template>

<Configuration du script>
DefineProps ({
  spectacle: booléen,
  Titre: String,
  Message: chaîne,
  onclose: fonction
})
</cript>

<style>
.Modal-Overlay {
  Position: fixe;
  en haut: 0; à gauche: 0; à droite: 0; en bas: 0;
  Contexte: RGBA (0, 0, 0, 0,5);
  Affichage: flex;
  Justification-contenu: centre;
  Align-Items: Centre;
  Z-Index: 1000;
}
.modal {
  Contexte: blanc;
  rembourrage: 20px;
  Border-Radius: 8px;
  Box-Shadow: 0 4px 10px RGBA (0,0,0,0,2);
}
</ style>

Utilisez-le dans un composant parent:

 <mpelate>
  <div>
    <bouton @ click = "ismodalopen = true"> afficher modal </futton>
    <Modal
      : show = "ismodalopen"
      title = "bienvenue"
      message = "Ceci est à l&#39;intérieur d&#39;un modal de téléportation!"
      @ close = "ismodalopen = false"
    />
  </div>
</ template>

<Configuration du script>
import {ref} de &#39;Vue&#39;
importer modal à partir de &#39;./modal.vue&#39;

const ismodalopen = ref (false)
</cript>

Même si Modal est rendu à l'intérieur de ce composant, son contenu apparaît au niveau body - en évitant les problèmes de mise en page.


⚠️ Remarques importantes

  • Les événements fonctionnent toujours normalement : même après la téléportation, les gestionnaires d'événements et les liaisons v-model fonctionnent parce que Vue maintient le contexte réactif.
  • Travaux de rendu conditionnel : Utilisez v-if ou v-show à l'intérieur de la téléportation pour contrôler la visibilité.
  • Plusieurs téléports : vous pouvez avoir plusieurs composants <teleport></teleport> dans un modèle, ciblant différents emplacements.
  • Accessibilité : Lorsque vous utilisez des modaux, n'oubliez pas de gérer les attributs Focus et Aria pour les lecteurs d'écran.

✅ Quand utiliser la téléportation

  • Modaux, boîtes de dialogue ou popups
  • Infiltraires et listes déroulantes (en particulier avec les problèmes de débordement)
  • Notifications ou messages de toast
  • Chargeurs à écran complet

Il résout le problème classique: "Mon modal est coupé à cause du overflow: hidden sur un parent."


Fondamentalement, la téléportation vous donne une flexibilité DOM sans casser la réactivité. Il est propre, intégré et très utile pour les composants de l'interface utilisateur qui doivent échapper à leur conteneur. Pas magique - juste un rendu Smart Dom.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1535
276
Entrée gratuite sur le site Web des ressources du produit fini de Vue. Le produit fini complet est consulté en permanence en ligne Entrée gratuite sur le site Web des ressources du produit fini de Vue. Le produit fini complet est consulté en permanence en ligne Jul 23, 2025 pm 12:39 PM

Cet article a sélectionné une série de sites Web de ressources de produits finis de haut niveau pour les développeurs et les apprenants VUE. Grâce à ces plateformes, vous pouvez parcourir, apprendre et même réutiliser des projets complets massifs de haute qualité en ligne gratuitement, améliorant ainsi rapidement vos compétences en développement et vos capacités de pratique de projet.

Quels sont les crochets de cycle de vie Vue? Nommez quelques-uns et expliquez leurs cas d'utilisation. Quels sont les crochets de cycle de vie Vue? Nommez quelques-uns et expliquez leurs cas d'utilisation. Jul 24, 2025 am 12:08 AM

Le crochet du cycle de vie du composant VUE est utilisé pour exécuter du code à une étape spécifique. 1. Créé: appelé immédiatement après la création du composant, adapté à l'initialisation des données; 2.Mountide: appelé après le montage du composant sur le DOM, adapté au fonctionnement du DOM ou au chargement des ressources externes; 3.Uplété: appelé lorsque la mise à jour des données provoque la réadaptation du composant, adapté pour répondre aux modifications de données; 4.Beforeunmount: appelé avant que le composant ne soit désinstallé, adapté à l'écoute des événements de nettoyage ou à la minuterie pour éviter les fuites de mémoire. Ces crochets aident les développeurs à contrôler avec précision le comportement des composants et à optimiser les performances.

Exemple de composant de pagination dans Vue Exemple de composant de pagination dans Vue Jul 26, 2025 am 08:49 AM

Pour implémenter les composants de pagination Vue réutilisables, les points clés suivants doivent être clarifiés: 1. Définissez les accessoires, y compris le nombre total de lignes, le nombre de lignes par page et le numéro de page actuel; 2. Calculez le nombre total de pages; 3. Générez dynamiquement le tableau de numéro de page affiché; 4. Traitez l'événement Cliquez sur le numéro de page et passez-le au composant parent; 5. Ajouter des styles et des détails d'interaction. Recevez des données via les accessoires et définissez les valeurs par défaut, utilisez l'attribut calculé pour calculer le nombre total de pages, utilisez la méthode pour générer le tableau de numéro de page actuellement affiché, rendre les boutons dans le modèle et lier les événements de clic pour déclencher la mise à jour: événement de page en cours, écouter l'événement dans le composant parent pour améliorer le numéro de page actuel, et enfin mettre en évidence le numéro de page en cours par le biais de CSS et contrôler l'état du bouton pour améliorer l'expérience utilisateur.

Vue Entrée de ressource de produit fini gratuit Vue Entrée de ressource de produit fini gratuit Jul 23, 2025 pm 12:42 PM

Pour les développeurs VUE, un projet ou un modèle fini de haute qualité est un outil puissant pour démarrer rapidement de nouveaux projets et apprendre les meilleures pratiques. Cet article a sélectionné plusieurs portails de ressources de produits finis gratuits en haut Vue et la navigation sur le site Web pour vous aider à trouver les solutions frontales dont vous avez besoin efficacement, qu'il s'agisse d'un système de gestion back-end, d'une bibliothèque de composants d'interface utilisateur ou de modèles pour des scénarios commerciaux spécifiques, vous pouvez facilement les obtenir.

Propriétés calculées vs méthodes en Vue Propriétés calculées vs méthodes en Vue Aug 05, 2025 am 05:21 AM

Calculé a un cache et les accès multiples ne sont pas recalculés lorsque la dépendance reste inchangée, tandis que les méthodes sont exécutées à chaque fois qu'elles sont appelées; 2.COMPUT est adapté aux calculs basés sur des données réactives. Les méthodes conviennent aux scénarios où les paramètres sont requis ou les appels fréquents, mais le résultat ne dépend pas de données réactives; 3.Coupation prend en charge les getters et les setters, ce qui peut réaliser la synchronisation bidirectionnelle des données, mais les méthodes ne sont pas prises en charge; 4. Résumé: Utilisez d'abord calculé pour améliorer les performances et utilisez des méthodes lors de la réussite des paramètres, de l'exécution d'opérations ou d'éviter le cache, en suivant le principe de "Si vous pouvez utiliser calculé, vous n'utilisez pas de méthodes".

Comment utiliser des emplacements et des emplacements nommés dans un composant Vue? Comment utiliser des emplacements et des emplacements nommés dans un composant Vue? Jul 21, 2025 am 03:24 AM

L'utilisation de créneaux et des emplacements nommés dans Vue peut améliorer la flexibilité et la réutilisabilité des composants. 1. La machine à sous permet au composant parent d'insérer du contenu dans le composant enfant via une balise, tel que l'insertion du texte de paragraphe dans le composant Card.Vue; 2. La machine à sous nommée réalise le contrôle de la position d'insertion de contenu via l'attribut de nom, tels que la définition respectivement des zones d'en-tête, de corps et de pied de page dans le composant de la boîte modale; 3. Le contenu par défaut peut être défini dans la fente comme alternative lorsque le composant parent n'est pas fourni, tel que le bouton Fermer par défaut; 4. Le symbole # est la syntaxe d'abréviation de V-slot:; 5. Il est recommandé d'utiliser raisonnablement des emplacements pour éviter une dépendance excessive, et un certain contenu peut être considéré comme mis en œuvre via des accessoires ou des composants de la portée.

Comment mettre en œuvre l'internationalisation (I18N) dans une application VUE? Comment mettre en œuvre l'internationalisation (I18N) dans une application VUE? Jul 26, 2025 am 08:37 AM

Installer Vuei18n: Vue3 utilise npminstallvue-i18n @ suivant, Vue2 utilise npminstallvue-i18n; 2. Créer des fichiers linguistiques tels que en.json et es.json dans le répertoire des localités, en prenant en charge les structures imbriquées; 3. Créez des instances via CreateI18n dans Vue3 et montez-les dans Main.js, Vue2 utilise Vue.use (Vuei18n) et instanciate Vuei18n; 4. Utiliser {{$ t ('key')}} Interpolation dans les modèles, utilisez la fonction t usei18n dans l'API Vue3Composition et l'API Vue2Options

Comment implémenter un commutateur de thème en mode sombre dans Vue Comment implémenter un commutateur de thème en mode sombre dans Vue Aug 02, 2025 pm 12:15 PM

Créez un composant de commutation de thème, utilisez la case à cocher pour lier l'état d'IsdarkMode et appeler la fonction toggletheme; 2. Vérifiez les préférences locales et systèmes dans le montage pour initialiser le thème; 3. Définissez la fonction ApplicationTheme pour appliquer la classe en mode noir à l'élément HTML aux styles de commutation; 4. Utilisez les propriétés personnalisées CSS pour définir des variables lumineuses et sombres et écrasez les styles par défaut via la classe en mode noir; 5. Introduisez le composant Themeswitcher dans le modèle d'application principal pour afficher le bouton à bascule; 6. Écouter éventuellement les modifications préfères-color pour synchroniser le thème du système. Cette solution utilise Vue

See all articles