Rumah  >  Artikel  >  hujung hadapan web  >  Cara melaksanakan penggunaan semula elemen halaman dengan komponen keep-alive dalam Vue

Cara melaksanakan penggunaan semula elemen halaman dengan komponen keep-alive dalam Vue

WBOY
WBOYasal
2023-07-21 10:57:161172semak imbas

Vue ialah rangka kerja JavaScript yang popular dengan ciri yang kaya dan API yang mudah digunakan. Salah satu fungsi yang biasa digunakan ialah komponen keep-alive, yang boleh menggunakan semula elemen halaman dan meningkatkan prestasi halaman serta pengalaman pengguna. 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

Dalam Vue, apabila komponen dimusnahkan, semua data dan keadaan juga akan dimusnahkan. Walau bagaimanapun, kadangkala kami mahu dapat mengekalkan keadaan komponen supaya pengguna boleh memulihkan data dengan cepat apabila mereka melawat semula. Dalam kes ini, komponen keep-alive amat berguna. 🎜🎜 keep-alive komponen boleh cache komponen yang dibungkusnya, bukannya memusnahkan dan menciptanya semula setiap kali. Apabila komponen meninggalkan pandangan, ia tidak dimusnahkan, tetapi kekal dalam ingatan, menunggu untuk kegunaan seterusnya. Apabila komponen dipaparkan semula, tika komponen dalam cache akan digunakan secara langsung tanpa menciptanya semula. 🎜🎜Mari kita lihat contoh khusus di bawah. Katakan kita mempunyai komponen senarai Senarai yang komponen anaknya ialah Item, setiap Item mempunyai keadaannya sendiri. 🎜🎜 Senarai komponen: 🎜rrreee🎜 Item komponen: 🎜rrreee🎜Dalam contoh di atas, kami menggunakan dalam komponen Senarai The komponen keep-alive membalut komponen Item. Apabila butang diklik, senarai itu ditunjukkan atau disembunyikan tanpa dimusnahkan dan dicipta semula. 🎜🎜Perhatikan bahawa apabila menggunakan komponen keep-alive, kita perlu menetapkan nilai key unik untuk setiap Item supaya Vue boleh Caching dengan betul dan menggunakan semula komponen. 🎜🎜Selain itu, contoh komponen cache tidak memanggil fungsi cangkuk kitaran hayat dibuat dan musnah, tetapi memanggil diaktifkan dan dinyahaktifkan fungsi cangkuk. Jadi, jika anda ingin melakukan beberapa operasi apabila komponen dicache, anda boleh menggunakan diaktifkan Jika anda ingin melakukan beberapa operasi apabila komponen meninggalkan paparan, anda boleh menggunakan dinyahaktifkan. 🎜🎜Untuk meringkaskan, komponen keep-alive dalam Vue boleh menggunakan semula elemen halaman dan meningkatkan prestasi halaman serta pengalaman pengguna. Dengan membungkus komponen yang perlu dicache dalam komponen keep-alive, kami boleh mengelakkan pemusnahan dan penciptaan semula komponen yang tidak perlu, sekali gus meningkatkan kelajuan pemuatan halaman dan responsif. Pada masa yang sama, anda perlu memberi perhatian untuk menetapkan nilai key unik untuk setiap komponen cache dan anda boleh menggunakan activated dan deactivated cangkuk berfungsi untuk mengubah suai komponen beroperasi. 🎜

Atas ialah kandungan terperinci Cara melaksanakan penggunaan semula elemen halaman dengan komponen keep-alive dalam Vue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn