Heim > Web-Frontend > View.js > Hauptteil

So implementieren Sie die Wiederverwendung von Seitenelementen mit der Keep-Alive-Komponente in Vue

WBOY
Freigeben: 2023-07-21 10:57:16
Original
1175 Leute haben es durchsucht

Vue ist ein beliebtes JavaScript-Framework mit umfangreichen Funktionen und einer benutzerfreundlichen API. Eine der häufig verwendeten Funktionen ist die Komponente keep-alive, mit der Seitenelemente wiederverwendet und die Seitenleistung und Benutzererfahrung verbessert werden können. 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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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

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

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

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

Wenn in Vue die Komponente zerstört wird, werden auch alle Daten und der Status zerstört. Manchmal möchten wir jedoch in der Lage sein, den Status einer Komponente beizubehalten, damit Benutzer die Daten bei einem erneuten Besuch schnell wiederherstellen können. In diesem Fall ist die Komponente keep-alive hilfreich. 🎜🎜keep-alive-Komponenten können die von ihnen verpackten Komponenten zwischenspeichern, anstatt sie jedes Mal zu zerstören und neu zu erstellen. Wenn die Komponente die Ansicht verlässt, wird sie nicht zerstört, sondern verbleibt im Speicher und wartet auf die nächste Verwendung. Wenn die Komponente erneut gerendert wird, wird die Komponenteninstanz im Cache direkt verwendet, ohne sie neu zu erstellen. 🎜🎜Sehen wir uns unten ein konkretes Beispiel an. Angenommen, wir haben eine Listenkomponente List, deren untergeordnete Komponenten Item sind, wobei jedes Item seinen eigenen Status hat. 🎜🎜List-Komponente: 🎜rrreee🎜Item-Komponente: 🎜rrreee🎜Im obigen Beispiel verwenden wir in der <code>List-Komponente Die keep-alive-Komponente umschließt die Item-Komponente. Wenn Sie auf die Schaltfläche klicken, wird die Liste angezeigt oder ausgeblendet, ohne zerstört und neu erstellt zu werden. 🎜🎜Beachten Sie, dass wir bei Verwendung der keep-alive-Komponente einen eindeutigen key-Wert für jedes Item festlegen müssen, damit Vue das Caching korrekt durchführen kann und Wiederverwendung von Komponenten. 🎜🎜Außerdem ruft die zwischengespeicherte Komponenteninstanz nicht die Life-Cycle-Hook-Funktionen created und destroyed auf, sondern ruft activated und deaktiviert auf Hook-Funktion. Wenn Sie also einige Vorgänge ausführen möchten, während die Komponente zwischengespeichert ist, können Sie aktiviert verwenden. Wenn Sie einige Vorgänge ausführen möchten, wenn die Komponente die Ansicht verlässt, können Sie deaktiviert verwenden >. 🎜🎜Zusammenfassend lässt sich sagen, dass die keep-alive-Komponente in Vue Seitenelemente wiederverwenden und die Seitenleistung und Benutzererfahrung verbessern kann. Indem wir Komponenten, die zwischengespeichert werden müssen, in Keep-Alive-Komponenten einschließen, können wir eine unnötige Zerstörung und Neuerstellung von Komponenten vermeiden und so die Ladegeschwindigkeit und Reaktionsfähigkeit der Seite verbessern. Gleichzeitig müssen Sie darauf achten, für jede zwischengespeicherte Komponente einen eindeutigen Schlüssel-Wert festzulegen, und Sie können aktiviert und deaktiviert verwenden Hook-Funktionen zum Ändern der Komponente. 🎜

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Wiederverwendung von Seitenelementen mit der Keep-Alive-Komponente in Vue. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage