Maison  >  Article  >  interface Web  >  Comment Vue implémente-t-il les fonctions de hook et la gestion du cycle de vie ?

Comment Vue implémente-t-il les fonctions de hook et la gestion du cycle de vie ?

PHPz
PHPzoriginal
2023-06-27 13:31:401387parcourir

Vue est un framework JavaScript populaire qui fournit des mécanismes spéciaux afin que les composants puissent être facilement gérés, modifiés et manipulés. L’un des mécanismes importants concerne les fonctions de hook et la gestion du cycle de vie. Cet article présentera les concepts de fonctions de hook et de cycles de vie dans Vue et expliquera comment les implémenter.

  1. Que sont les fonctions et les cycles de vie des hooks ?

Dans Vue, chaque composant a un cycle de vie. Le cycle de vie est le processus par lequel un composant passe par différentes étapes. Vue divise le cycle de vie du composant en différentes étapes et effectue des opérations spécifiques à chaque étape. Ces opérations sont appelées fonctions hook dans Vue.

Les fonctions Hook sont des méthodes spécifiques qui sont exécutées à différentes étapes du cycle de vie des composants. Dans Vue, les fonctions de hook peuvent nous aider à effectuer certaines opérations à différentes étapes du cycle de vie des composants. Cela facilite la gestion du comportement du composant.

  1. Différentes étapes du cycle de vie de Vue

Le cycle de vie de Vue peut être divisé en 8 étapes différentes :

  • beforeCreate
  • created
  • beforeMount
  • Mounted
  • beforeUpdate
  • updated
  • avantDestroy
  • détruit

Dans le cycle de vie du composant Vue, chaque étape a une fonction de hook correspondante qui peut effectuer des opérations spécifiques à un moment précis. Ce qui suit est une introduction détaillée à chaque étape et à la fonction de cycle de vie correspondante :

  • beforeCreate : appelé avant l'initialisation de l'instance. À ce stade, les propriétés de l'instance n'ont pas été initialisées, les données et les propriétés calculées ne sont donc pas accessibles à ce stade.
  • created : L'instance a été créée et les données ont été initialisées, mais le DOM n'a pas encore été monté. À ce stade, les données et les propriétés calculées sont accessibles, mais les nœuds DOM ne peuvent pas être obtenus.
  • beforeMount : Le DOM a été monté mais n'a pas encore été rendu. À ce stade, les nœuds DOM et les instances de composants peuvent être obtenus.
  • monté : Le DOM a été monté et rendu. À ce stade, vous pouvez accéder au nœud DOM et effectuer des opérations similaires à jQuery. Il est préférable d'utiliser des hooks personnalisés pour écouter divers événements du nœud DOM à ce stade.
  • beforeUpdate : les données ont changé, mais le DOM n'a pas encore été restitué. À ce stade, vous pouvez modifier les données, mais ne déclenchez pas de mises à jour de statut.
  • mis à jour : les données ont été mises à jour et le DOM a été restitué. Les données peuvent être modifiées, mais les mises à jour de statut ne doivent pas être déclenchées.
  • beforeDestroy : L'instance est sur le point d'être détruite. Des travaux de nettoyage peuvent être effectués ici, comme effacer les minuteries, etc.
  • destroyed : L'instance a été détruite. À ce stade, un travail de nettoyage doit être effectué, comme effacer les écouteurs d'événements, etc.
  1. Comment utiliser les fonctions hook et les cycles de vie ?

Dans Vue, vous pouvez utiliser l'API officiellement fournie pour définir la fonction hook du composant. Dans les options d'une instance ou d'un composant Vue, vous pouvez définir des fonctions hook à différentes étapes :

var vm = new Vue({
  el: '#app',
  data: {
    message: ''
  },
  beforeCreate: function () {
    console.log('beforeCreate !')
  },
  created: function () {
    console.log('created !')
  },
  beforeMount: function () {
    console.log('beforeMount !')
  },
  mounted: function () {
    console.log('mounted !')
  },
  beforeUpdate: function () {
    console.log('beforeUpdate !')
  },
  updated: function () {
    console.log('updated !')
  },
  beforeDestroy: function () {
    console.log('beforeDestroy !')
  },
  destroyed: function () {
    console.log('destroyed !')
  }
})

Les fonctions Hook seront automatiquement appelées à différentes étapes du cycle de vie de l'instance. De cette manière, l'instance peut être exploitée à un moment précis et les composants peuvent être gérés plus facilement. Par exemple, vous pouvez demander des données dans la fonction hook créée, modifier le nœud DOM dans la fonction hook montée, nettoyer le travail dans la fonction hook beforeDestroy, etc.

De plus, vous pouvez également définir des fonctions de hook dans les composants. La fonction hook du composant est très similaire à la fonction hook de l'instance et peut être automatiquement appelée et effectuer des opérations spécifiques :

Vue.component('my-component', {
  template: '<div>My Component</div>',
  beforeCreate: function () {
    console.log('beforeCreate !')
  },
  created: function () {
    console.log('created !')
  },
  beforeMount: function () {
    console.log('beforeMount !')
  },
  mounted: function () {
    console.log('mounted !')
  },
  beforeUpdate: function () {
    console.log('beforeUpdate !')
  },
  updated: function () {
    console.log('updated !')
  },
  beforeDestroy: function () {
    console.log('beforeDestroy !')
  },
  destroyed: function () {
    console.log('destroyed !')
  }
})

Si vous devez encapsuler le composant, vous pouvez également utiliser l'extension mixin dans le composant, et le mixin sera automatiquement appelé pendant le cycle de vie du composant Fonction Hook :

var mixin = {
  beforeCreate: function () {
    console.log('beforeCreate !')
  },
  created: function () {
    console.log('created !')
  },
  beforeMount: function () {
    console.log('beforeMount !')
  },
  mounted: function () {
    console.log('mounted !')
  },
  beforeUpdate: function () {
    console.log('beforeUpdate !')
  },
  updated: function () {
    console.log('updated !')
  },
  beforeDestroy: function () {
    console.log('beforeDestroy !')
  },
  destroyed: function () {
    console.log('destroyed !')
  }
};

Vue.component('my-component', {
  mixins: [mixin],
  template: '<div>My Component</div>'
})
  1. Résumé

La fonction hook et le cycle de vie dans Vue fournissent un mécanisme pratique pour la gestion et le fonctionnement des composants. Pendant le cycle de vie du composant, vous pouvez définir des fonctions de hook pour effectuer des opérations spécifiques. Les fonctions Hook peuvent être définies dans les options de l'instance ou du composant Vue, ou dans le composant à l'aide des extensions mixin. De cette manière, nous pouvons contrôler plus précisément le comportement des composants et faciliter la gestion et la modification 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!

Déclaration:
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