


Comment gérer le cycle de vie des composants dans l'API de composition Vue 3?
Dans l'API de composition de Vue 3, le crochet du cycle de vie est utilisé par la fonction ONX. La réponse est: 1. Importer sur le point, ondulé, onunmounted et l'appeler dans setup (); 2. Setup () remplace créé sans définition séparée; 3. La logique du cycle de vie peut être encapsulée dans les fonctions combinées pour la réutilisation; 4. Le crochet doit être appelé de manière synchrone et peut être enregistré plusieurs fois; 5. Les utilisations courantes incluent l'obtention de données pendant les ressources de montage et de nettoyage pendant la désinstallation, améliorant ainsi l'organisation du code et la maintenabilité.
Dans l'API de composition de Vue 3, les crochets de cycle de vie des composants sont gérés différemment de l'API Options. Au lieu de définir des méthodes de cycle de vie comme des options sur l'objet composant (comme mounted
, created
, etc.), vous les importez et les utilisez directement dans la fonction setup()
ou une fonction de composition.

Voici comment travailler avec des crochets de cycle de vie dans l'API de composition:
Utilisez des crochets de cycle de vie avec des fonctions onX
Vue 3 fournit des fonctions spécifiques telles que onMounted
, onUpdated
, onUnmounted
et d'autres qui correspondent aux événements de cycle de vie traditionnels. Vous les importez de vue
et les appelez dans setup()
.

import {onMounted, onupdated, onunmounted} de 'Vue' Exporter par défaut { installation() { onMounted (() => { console.log («composant est monté») // Effectuer l'initialisation (par exemple, récupérer les données, configurer les auditeurs) }) onupdated (() => { console.log («composant est mis à jour») // réagir aux changements de données réactives }) onunmounted (() => { console.log ('' composant n'est pas monté ')) // Nettoyer (par exemple, supprimer les auditeurs d'événements, les heures claires) }) retour {} } }
Crochets de cycle de vie disponibles dans l'API de composition
Ce sont les principaux crochets de cycle de vie disponibles:
-
onBeforeMount
- appelé juste avant le montage du composant. -
onMounted
- appelé après le montage du composant. -
onBeforeUpdate
- appelé avant les mises à jour du composant en raison des modifications de données réactives. -
onUpdated
- appelé une fois le composant mis à jour. -
onBeforeUnmount
- appelé juste avant que le composant ne soit non monté. -
onUnmounted
- appelé après que le composant n'est pas monté. -
onErrorCaptured
- appelé lorsqu'une erreur se propage à partir d'un composant enfant. -
onRenderTracked
&onRenderTriggered
- Debug Render Mises à jour (utilisées avec le suivireactive
/ref
.).
Remarque: il n'y a pas de crochet
created
dans l'API de composition carsetup()
s'exécute pendant la phase de création. Ainsi, le code qui irait danscreated
peut être placé directement danssetup()
.
Exemple pratique: récupérer les données sur la monture
Un cas d'utilisation courant est de récupérer les données lorsque le composant monte et le nettoyage sur un mont.
import {ref, onmounted, onunmounted} de 'vue' Exporter par défaut { installation() { const Data = Ref (null) const Timer = Ref (null) onMounted (() => { // Simuler l'appel de l'API timer.value = setTimeout (() => { data.Value = 'Revended Data!' }, 1000) }) onunmounted (() => { // Empêcher les fuites de mémoire if (timer.value) { ClearTimeout (Timer.Value) } }) retour { données } } }
Utilisation de crochets de cycle de vie dans des composants
L'un des grands avantages de l'API de composition est la réutilisabilité. Vous pouvez encapsuler la logique du cycle de vie dans des composants personnalisés.
//composables/usewindowsize.js import {ref, onmounted, onunmounted} de 'vue' fonction d'exportation usewindowsize () { Const largeur = ref (0) const height = ref (0) fonction updateSize () { width.Value = window.innerwidth height.value = window.innerheight } onMounted (() => { updatesize () window.addeventListener («redimensi», mises à jour) }) onunmounted (() => { window.RemoveEventListener («redimensi», mises à jour) }) retour {largeur, hauteur} }
Puis utilisez-le dans n'importe quel composant:
import {usewindowsize} depuis './composables/usewindowsize' Exporter par défaut { installation() { const {largeur, hauteur} = usewindowSize () retour {largeur, hauteur} } }
Points clés pour se souvenir
- Les crochets de cycle de vie doivent être appelés de manière synchrone à l'intérieur
setup()
ou d'un composable - pas à l'intérieur de rappels ou de conditions asynchrones. - Vous pouvez appeler le même crochet plusieurs fois (par exemple, plusieurs appels
onMounted
), et ils seront tous exécutés. -
setup()
remplace à la foisbeforeCreate
etcreated
- pas besoin de les définir séparément.
Fondamentalement, l'API de composition vous offre plus de flexibilité et une meilleure organisation de code en vous permettant de regrouper la logique associée - y compris la manipulation du cycle de vie - ensemble, en particulier lors de la création de logique réutilisable avec des composants.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

SuspenseInvue3SimpiliesHandlingAsyncomponentsByManagingloadingStates et IntegraterrorHandling.1.itWrapsasyncContentandDisplaysFallbackContentlikespinnersUtilthecomponentloads.2.EBEDEFINEASYNCCOMOPONENTSUSINGDEFINEAnSYnCOMPOINTAnDWRAPTHEMINASUSUSUSE

Vue3’scompositionAPIIMPROVESCOMPORANTDEVENCEMENTBY OFFERINGAMOREFLEXIBLEADIDINGIVEVAPROACHAPPAREDTATHEOPTIONSAPI.1.itallowsMoRenaturalCodeorganizationBygroupingRelatedLogicToGetHetherinstedofSplitSacros

Vue3 s'est amélioré dans de nombreux aspects clés par rapport à Vue2. 1.Conde API fournit une méthode d'organisation logique plus flexible, permettant la gestion centralisée de la logique connexe, tout en prenant en charge l'API Options de Vue2; 2. De meilleures performances et une taille de package plus petite, la bibliothèque de base est réduite d'environ 30%, la vitesse de rendu est plus rapide et prend en charge une meilleure optimisation des shake d'arbre; 3. Le système réactif utilise ES6Proxy pour résoudre le problème de l'incapacité de suivre automatiquement l'addition d'attributs et la suppression dans Vue2, ce qui rend le mécanisme réactif plus naturel et cohérent; 4. Prise en charge intégrée intégrée pour TypeScript, prends en charge plusieurs fragments de nœuds et API de rendu personnalisé, améliorant la flexibilité et l'adaptabilité future. Dans l'ensemble, Vue3 est une mise à niveau en douceur vers Vue2,

La migration vers Vue3 nécessite de partir de quatre aspects: vérification de la compatibilité, modifications réactives du système, ajustement de la communication des composants et mise à niveau des outils de construction. Tout d'abord, vérifiez si les dépendances du projet prennent en charge Vue3, en particulier les bibliothèques de base telles que Vuex et Vuerouter, et envisagez d'utiliser @ vue / compat pour une migration progressive; Deuxièmement, le système réactif est mis en œuvre par proxy, et Ref / Reactive a besoin de déclarer explicitement des données réactives, remplaçant Vue.set; Troisièmement, le crochet du cycle de vie est changé en onBeForMount, sur le point, etc., et il est nécessaire d'importer et de déclarer explicitement les accessoires / émissions; Quatrièmement, si TypeScript est utilisé, la prise en charge du fichier de configuration et de la chaîne d'outils doit être mise à jour. Il est recommandé de le terminer en premier.

TypeScriptenhancesvue3ProjectSwithTypeSafetyAndimprovedTooling, surtout lorsque vous êtes en train de composerAPI.Tosetupvue3withTyPescrip

Tosafelystructurationreactiveobjectsinvue3whilepreservingreactivité, usetorefs () withreactive () orpreferref (). 1.whennesingreactive (), toujours wraptheobjectwithtorefs () beforedestruat

Dans Vue3, plusieurs liaisons en V V ne peuvent pas être utilisées directement sur un composant, mais des fonctions similaires peuvent être obtenues grâce à des propriétés et événements de modèle personnalisés. 1. Utilisez l'option Modèle pour personnaliser le nom des accessoires et de l'événement, par exemple, implémentez plusieurs liaisons de type V via le modèle: {Prop: 'Title', événement: 'mise à jour: titre'}; 2. Passez manuellement les accessoires et les événements de déclenchement, tels que la liaison: nom d'utilisateur et @update: nom d'utilisateur dans le composant parent, déclarer émettre dans le composant enfant; 3. Utiliser DefineProps and DefineeMits dans CompositionAPI

HEMAINDIFFERDSBETWENWEVUE3’s OptionsapiandCospositionPiliesIncodeorganization andlogicreuse
