Vue Academy · Pelajaran

onUnmounted dan Corak Pembersihan

Mengosongkan selang masa, membuang pendengar peristiwa, membatalkan permintaan dalam onUnmounted.

Pelajaran 4 daripada 413 langkah

onUnmounted dan Corak Pembersihan ialah pelajaran Vue Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Vue Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Vue Academy merangkumi sejumlah 4 pelajaran.

Melakukan Pembersihan Selepas Digunakan

Apabila komponen dialih keluar, apa-apa yang dimulakannya — pemasa, pendengar, langganan, permintaan rangkaian — terus berjalan melainkan anda menghentikannya. Cangkuk onUnmounted ialah tempat untuk melakukan pembersihan bagi mengelakkan kebocoran memori dan pepijat.

Cangkuk onUnmounted

onUnmounted dicetuskan selepas komponen dialih keluar daripada DOM. Inilah peluang terakhir untuk membebaskan sumber.

<script setup>
import { onUnmounted } from 'vue'
onUnmounted(() => {
  console.log('component removed')
})
</script>

Corak: Mengosongkan Selang Masa

Jika anda memulakan selang masa dalam onMounted, kosongkannya dalam onUnmounted. Jika tidak, fungsi panggil balik terus dicetuskan selepas komponen tiada, dan sering menyebabkan aplikasi terhenti kerana keadaan yang diperlukan sudah tiada.

<script setup>
import { onMounted, onUnmounted } from 'vue'
let id
onMounted(() => { id = setInterval(tick, 1000) })
onUnmounted(() => clearInterval(id))
</script>

Corak: Mengalih Keluar Pendengar Peristiwa

Pendengar global pada window atau document terus wujud selepas komponen dialih keluar. Sentiasa pasangkan addEventListener dengan removeEventListener.

<script setup>
import { onMounted, onUnmounted } from 'vue'
function onResize() {}
onMounted(() => window.addEventListener('resize', onResize))
onUnmounted(() => window.removeEventListener('resize', onResize))
</script>

Corak: Membatalkan Permintaan

Permintaan tertangguh yang selesai selepas nyahpasang boleh menetapkan keadaan pada komponen yang sudah tiada. Gunakan AbortController untuk membatalkannya semasa pembersihan.

<script setup>
import { onMounted, onUnmounted } from 'vue'
const controller = new AbortController()
onMounted(() => {
  fetch('/api/data', { signal: controller.signal })
})
onUnmounted(() => controller.abort())
</script>

Corak: Membatalkan Langganan

Langganan kepada stor, soket atau bas peristiwa mesti ditamatkan. Simpan fungsi berhenti melanggan dan panggilnya dalam onUnmounted.

<script setup>
import { onMounted, onUnmounted } from 'vue'
let unsubscribe
onMounted(() => { unsubscribe = store.subscribe(handler) })
onUnmounted(() => unsubscribe && unsubscribe())
</script>

watch Mengembalikan Fungsi Henti

Memanggil watch mengembalikan fungsi yang menghentikannya. Pemerhati yang dicipta semasa persediaan dihentikan secara automatik, tetapi pemerhati yang dicipta kemudian (contohnya, dalam fungsi panggil balik lain) hendaklah dihentikan secara manual.

<script setup>
import { watch, onUnmounted } from 'vue'
const stop = watch(source, handler)
onUnmounted(() => stop())
</script>

Fungsi Panggil Balik Pembersihan watchEffect

Dalam watchEffect, anda menerima fungsi onCleanup untuk melakukan pembersihan sebelum larian seterusnya atau apabila stop dipanggil. Ini memastikan sumber bagi setiap larian kekal terurus.

watchEffect((onCleanup) => {
  const timer = setTimeout(doWork, 500)
  onCleanup(() => clearTimeout(timer))
})

Mengapa Pembersihan Penting

Melangkau pembersihan menyebabkan kebocoran memori (sumber tidak pernah dibebaskan), pendengar pendua (berbilang pemasangan terkumpul), dan pepijat (fungsi panggil balik menyentuh keadaan yang telah dimusnahkan). Kod yang kemas sentiasa menamatkan perkara yang dimulakannya.

Fungsi Boleh Gubah Menjadikannya Automatik

Fungsi boleh gubah yang ditulis dengan baik mendaftarkan pembersihannya sendiri dalam onUnmounted. Oleh sebab itu, fungsi boleh gubah VueUse seperti useEventListener mengalih keluar pendengar untuk anda — pembersihan telah terbina di dalamnya.

Senarai Semak Pembersihan

  • setInterval/setTimeout -> kosongkan kedua-duanya.
  • addEventListener -> alih keluar pendengar.
  • fetch -> batalkan dengan AbortController.
  • langganan -> panggil unsubscribe.
  • pemerhati manual -> panggil fungsi stop yang dikembalikan.

Semakan Ringkas

Uji pengetahuan anda tentang pembersihan.

Imbas Kembali

Asas pembersihan:

  • onUnmounted dijalankan selepas penyingkiran — bebaskan sumber di sini.
  • Kosongkan selang masa dan pemasa tamat, alih keluar pendengar, batalkan permintaan data dan hentikan langganan.
  • watch mengembalikan fungsi henti untuk dipanggil dalam onUnmounted apabila diperlukan.
  • watchEffect menyediakan fungsi panggil balik onCleanup untuk pembersihan bagi setiap larian.
Percuma untuk bermula

Pelajari HTML dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
42
Pelajaran
156

Soalan Lazim

Adakah pelajaran “onUnmounted dan Corak Pembersihan” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Vue Academy, termasuk “onUnmounted dan Corak Pembersihan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Vue Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “onUnmounted dan Corak Pembersihan”?

Mengosongkan selang masa, membuang pendengar peristiwa, membatalkan permintaan dalam onUnmounted. Anda berlatih Vue Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Vue Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Vue Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “onUnmounted dan Corak Pembersihan” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Vue Academy ini?

Ya. Setiap pelajaran Vue Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Gambaran Keseluruhan Fasa Kitar Hayat
  2. onMounted dan onBeforeMount
  3. onUpdated dan onBeforeUpdate
  4. onUnmounted dan Corak Pembersihan
← Kembali ke Vue Academy