Maison  >  Article  >  interface Web  >  Comment implémenter la réutilisation des éléments de page avec le composant keep-alive dans Vue

Comment implémenter la réutilisation des éléments de page avec le composant keep-alive dans Vue

WBOY
WBOYoriginal
2023-07-21 10:57:161172parcourir

Vue est un framework JavaScript populaire doté de fonctionnalités riches et d'une API facile à utiliser. L'une des fonctions couramment utilisées est le composant keep-alive, qui peut réutiliser les éléments de la page et améliorer les performances de la page et l'expérience utilisateur. keep-alive 组件,它可以实现页面元素的复用,提升页面的性能和用户体验。

在 Vue 中,当组件销毁后,所有的数据和状态也会被销毁。然而,有些时候我们希望能够保留某个组件的状态,以便用户再次访问时能够快速恢复数据。这种情况下,keep-alive 组件就派上了用场。

keep-alive 组件可以将其包裹的组件缓存起来,而不是每次销毁和重新创建。当组件离开视图时,并不会被销毁,而是保留在内存中,等待下一次使用。当组件再次被渲染时,会直接使用缓存中的组件实例,而不需要重新创建。

下面我们来看一个具体的例子。假设我们有一个列表组件 List,其子组件为 Item,每个 Item 都有自己的状态。

List 组件:

<template>
  <div>
    <button @click="showList = !showList">{{ showList ? '隐藏' : '显示' }}列表</button>
    <hr>
    <keep-alive>
      <Item v-if="showList" v-for="item in list" :key="item.id" :data="item"></Item>
    </keep-alive>
  </div>
</template>

<script>
import Item from './Item'

export default {
  components: { Item },
  data() {
    return {
      showList: true,
      list: [
        { id: 1, name: '第一项' },
        { id: 2, name: '第二项' },
        { id: 3, name: '第三项' }
      ]
    }
  }
}
</script>

Item 组件:

<template>
  <div>
    <h3>{{ data.name }}</h3>
    <button @click="count++">增加计数</button>
    <p>计数: {{ count }}</p>
  </div>
</template>

<script>
export default {
  props: ['data'],
  data() {
    return {
      count: 0
    }
  }
}
</script>

在上面的例子中,我们在 List 组件中使用 keep-alive 组件将 Item 组件进行了包裹。当点击按钮时,列表会显示或隐藏,而不会销毁和重新创建。

注意在使用 keep-alive 组件时,我们需要给每个 Item 设置一个唯一的 key 值,这样 Vue 才能正确地缓存和复用组件。

另外,被缓存的组件实例并不会调用 createddestroyed 生命周期钩子函数,而是调用 activateddeactivated 钩子函数。所以如果想在缓存组件时做一些操作,可以使用 activated,如果想在组件离开视图时做一些操作,可以使用 deactivated

总结一下,Vue 中的 keep-alive 组件可以实现页面元素的复用,提升页面的性能和用户体验。通过将需要缓存的组件包裹在 keep-alive 组件中,我们可以避免不必要的组件销毁和重新创建,从而提升页面的加载速度和响应性。同时,需要注意给每个被缓存的组件设置一个唯一的 key 值,并可以使用 activateddeactivated

Dans Vue, lorsque le composant est détruit, toutes les données et tous les états seront également détruits. Cependant, nous souhaitons parfois pouvoir conserver l'état d'un composant afin que les utilisateurs puissent rapidement restaurer les données lors de leur nouvelle visite. Dans ce cas, le composant keep-alive s'avère pratique. 🎜🎜Les composants keep-alive peuvent mettre en cache les composants qu'ils enveloppent, au lieu de les détruire et de les recréer à chaque fois. Lorsque le composant quitte la vue, il n'est pas détruit, mais reste en mémoire en attendant la prochaine utilisation. Lorsque le composant est à nouveau rendu, l'instance du composant dans le cache sera utilisée directement sans la recréer. 🎜🎜Regardons un exemple spécifique ci-dessous. Supposons que nous ayons un composant de liste List dont les composants enfants sont Item, chaque Item a son propre état. 🎜🎜Composant List : 🎜rrreee🎜Composant Item : 🎜rrreee🎜Dans l'exemple ci-dessus, nous utilisons dans le composant <code>List. Le composant keep-alive encapsule le composant Item. Lorsque vous cliquez sur le bouton, la liste est affichée ou masquée sans être détruite ni recréée. 🎜🎜Notez que lors de l'utilisation du composant keep-alive, nous devons définir une valeur key unique pour chaque Item afin que Vue puisse correctement mettre en cache et la réutilisation des composants. 🎜🎜De plus, l'instance de composant mise en cache n'appelle pas les fonctions hook de cycle de vie created et destroyed, mais appelle activated et deactivated fonction de crochet. Donc, si vous souhaitez effectuer certaines opérations lorsque le composant est mis en cache, vous pouvez utiliser activated. Si vous souhaitez effectuer certaines opérations lorsque le composant quitte la vue, vous pouvez utiliser deactivated. >. 🎜🎜Pour résumer, le composant keep-alive de Vue peut réutiliser des éléments de page et améliorer les performances de la page et l'expérience utilisateur. En encapsulant les composants qui doivent être mis en cache dans des composants keep-alive, nous pouvons éviter la destruction et la recréation inutiles de composants, améliorant ainsi la vitesse de chargement et la réactivité des pages. Dans le même temps, vous devez faire attention à définir une valeur key unique pour chaque composant mis en cache, et vous pouvez utiliser les options activated et deactivated. fonctions de crochet pour modifier le fonctionnement du composant. 🎜

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