Maison > interface Web > Voir.js > Comment utiliser keep-alive pour optimiser les performances des composants dans Vue

Comment utiliser keep-alive pour optimiser les performances des composants dans Vue

WBOY
Libérer: 2023-10-15 10:49:41
original
1051 Les gens l'ont consulté

Comment utiliser keep-alive pour optimiser les performances des composants dans Vue

Comment utiliser keep-alive pour optimiser les performances des composants dans Vue

Introduction :
Lors du développement d'applications Vue, nous rencontrons souvent des scénarios dans lesquels nous devons changer fréquemment de composants. Un nouveau rendu est requis à chaque fois qu'un composant est commuté, ce qui entraînera une surcharge de performances. Cependant, Vue fournit un composant intégré appelé keep-alive qui peut nous aider à optimiser les performances du composant. Cet article explique comment utiliser keep-alive et fournit des exemples de code spécifiques.

1. Le rôle de keep-alive
keep-alive est un composant intégré de Vue, utilisé pour mettre en cache les composants avec état. En encapsulant un composant dans un keep-alive, vous pouvez conserver l'état du composant en mémoire et éviter un nouveau rendu à chaque fois. Cela peut améliorer considérablement les performances des applications.

2. Étapes pour utiliser keep-alive
Les étapes pour utiliser keep-alive pour optimiser les performances des composants sont les suivantes :

  1. Dans le modèle du composant parent, enveloppez les composants enfants qui doivent être mis en cache dans le keep-alive. étiquette vivante.
<template>
  <div>
    <h1>父组件</h1>
    <keep-alive>
      <child-component></child-component>
    </keep-alive>
  </div>
</template>
Copier après la connexion
  1. Dans le composant enfant, définissez l'attribut name pour donner au composant une identité unique.
<template>
  <div>
    <h2>子组件</h2>
    <!-- 组件内容 -->
  </div>
</template>

<script>
export default {
  name: 'child-component',
  // 组件的其他选项
}
</script>
Copier après la connexion

De cette façon, lors du passage à d'autres composants, les sous-composants enveloppés dans keep-alive seront mis en cache et conserveront l'état précédent. Lors du prochain retour, le composant sera chargé directement à partir du cache, éliminant ainsi le temps de rendu et améliorant les performances.

3. Fonction de maintien et de maintien du cycle de vie
Lorsque vous utilisez le maintien en vie, vous devez faire attention aux changements dans la fonction de maintien du cycle de vie du composant. Les composants enveloppés par keep-alive déclencheront deux fonctions de hook de cycle de vie supplémentaires : activées et désactivées.

  • activated : appelé lorsque le composant est activé (passé du composant enveloppé dans keep-alive au composant actuel).
  • deactivated : Appelé lorsque le composant est désactivé (lors du passage du composant actuel à un autre composant).

Vous pouvez utiliser ces deux fonctions de hook pour effectuer certaines opérations supplémentaires, telles que demander des données en mode activé et nettoyer les ressources en mode désactivé. Voici un exemple :

<template>
  <div>
    <h2>子组件</h2>
    <!-- 组件内容 -->
  </div>
</template>

<script>
export default {
  name: 'child-component',
  activated() {
    // 组件被激活时,执行一些操作,例如请求数据
    this.fetchData();
  },
  deactivated() {
    // 组件被停用时,执行一些操作,例如清理资源
    this.resetData();
  },
  methods: {
    fetchData() {
      // 请求数据的逻辑
    },
    resetData() {
      // 清理资源的逻辑
    },
  }
}
</script>
Copier après la connexion

De cette façon, chaque fois que vous passez à un sous-composant, la fonction hook activée sera déclenchée et la méthode fetchData sera exécutée pour demander les dernières données. Lors du passage à d'autres composants, la fonction hook désactivée sera déclenchée et la méthode resetData sera exécutée pour nettoyer les ressources.

4. Notes
Lors de l'utilisation de keep-alive, vous devez faire attention aux points suivants :

  1. Étant donné que les composants enveloppés par keep-alive seront mis en cache, les fonctions hook créées et montées du composant seront uniquement chargées. lorsqu'il est chargé pour la première fois, il ne sera plus déclenché. Si vous devez réexécuter la logique à chaque fois que vous passez à un composant, vous pouvez utiliser les fonctions hook activées et désactivées.
  2. keep-alive ne peut envelopper que des composants dynamiques ou des composants commutés via des balises de composants. Si vous devez envelopper un composant commuté à l'aide de v-if, vous devez placer v-if sur le composant externe, sinon l'effet de mise en cache ne peut pas être obtenu.
  3. Si plusieurs sous-composants sont enveloppés dans keep-alive, ils partagent le même état. Si vous souhaitez que chaque sous-composant ait son propre état indépendant, vous pouvez ajouter un attribut clé à chaque sous-composant.

Résumé :
Utilisez keep-alive pour optimiser les performances de rendu des composants dans les applications Vue. Enveloppez simplement les composants qui doivent être mis en cache dans keep-alive pour réduire le rendu inutile. Dans le même temps, des opérations supplémentaires peuvent être mises en œuvre via des fonctions de crochet activées et désactivées. Lorsque vous utilisez keep-alive, vous devez faire attention à certains détails d'utilisation, tels que la mise en cache des composants dynamiques, les modifications des fonctions de hook, etc.

Ce qui précède est une introduction et un exemple de code détaillé de l'utilisation de keep-alive pour optimiser les performances des composants dans Vue. J'espère que cela pourra vous aider dans le développement de votre projet.

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal