


Ketahui tentang watchEffect dalam Vue3 dalam satu artikel dan bincangkan tentang senario aplikasinya!
Artikel ini akan membawa anda melalui watchEffect dalam Vue3, memperkenalkan kesan sampingannya dan bercakap tentang perkara yang boleh dilakukannya, saya harap ia dapat membantu semua orang.
watchEffect
, yang melaksanakan fungsi yang diluluskan dengan serta-merta sambil menjejak kebergantungannya secara reaktif dan menjalankan semula fungsi tersebut apabila kebergantungannya berubah. (Belajar perkongsian video: tutorial video vue)
Dalam erti kata lain: watchEffect
adalah bersamaan dengan menggabungkan sumber kebergantungan dan fungsi panggil balik watch
apabila anda menggunakan sebarang reaktif Apabila kebergantungan dikemas kini, fungsi panggil balik akan dilaksanakan semula. Tidak seperti watch
, fungsi panggil balik watchEffect
akan dilaksanakan serta-merta (iaitu { immediate: true }
)
Artikel ini terutamanya bercakap tentang cara menggunakan 清除副作用
untuk menjadikan kod kami lebih elegan~
Kesan sampingan watchEffect
Apakah kesan sampingan (side effect
)? Secara ringkasnya, kesan sampingan adalah untuk melakukan operasi tertentu, seperti pengubahsuaian data pembolehubah luaran atau pembolehubah , panggilan ke antara muka luaran, dsb. Fungsi panggil balik watchEffect
ialah fungsi kesan sampingan, kerana kami menggunakan watchEffect
untuk melaksanakan operasi tertentu selepas mendengar perubahan dalam kebergantungan.
Apabila fungsi kesan sampingan dilaksanakan, ia pasti akan memberi sedikit kesan kepada sistem Contohnya, pemasa setInterval
dilaksanakan dalam fungsi kesan sampingan, jadi kita mesti menangani kesan sampingan. Fungsi Vue3
watchEffect
yang mendengar kesan sampingan boleh menerima fungsi onInvalidate
sebagai parameter input untuk mendaftarkan panggilan balik apabila pembersihan gagal. Panggilan balik ketidaksahihan ini akan dicetuskan apabila:
- Kesan sampingan akan dilaksanakan semula (iaitu nilai kebergantungan berubah)
- Pendengar dihentikan (dipulangkan oleh panggilan eksplisit) Nilai berhenti mendengar, atau berhenti mendengar dipanggil secara tersirat apabila komponen dipunggah)
import { watchEffect, ref } from 'vue' const count = ref(0) watchEffect((onInvalidate) => { console.log(count.value) onInvalidate(() => { console.log('执行了onInvalidate') }) }) setTimeout(()=> { count.value++ }, 1000)
Arahan yang dicetak oleh kod di atas ialah: 0
-> > -> 执行了onInvalidate,最后执行
1
dicetak dahulu count
, dan kemudian kerana pemasa mengemas kini nilai 0
kepada count
, sebelah kesan akan dilaksanakan semula pada masa ini, jadi 1
Fungsi panggil balik akan dicetuskan, mencetak onInvalidate
, dan kemudian melaksanakan fungsi kesan sampingan, mencetak nilai 执行了onInvalidate
count
. 1
import { watchEffect, ref } from 'vue' const count = ref(0) const stop = watchEffect((onInvalidate) => { console.log(count.value) onInvalidate(() => { console.log('执行了onInvalidate') }) }) setTimeout(()=> { stop() }, 1000)
untuk berhenti mendengar, fungsi panggil balik stop
juga akan dicetuskan. Begitu juga, apabila komponen di mana onInvalidate
watchEffect
terletak dinyahpasang, secara tersirat akan memanggil fungsi untuk berhenti mendengar, jadi fungsi panggil balik stop
juga boleh dicetuskan. onInvalidate
Aplikasi watchEffect
menggunakan fungsi yang tidak malas dan yang diluluskan dalam watchEffect
Apa yang boleh kita lakukan? onInvalidate
Senario 1: Biasanya kita mentakrifkan pemasa atau mendengar acara Kita perlu mentakrifkan atau mendaftarkannya dalam fungsi cangkuk kitaran hayat, dan kemudian mounted
Kosongkan. pemasa atau batalkan fungsi mendengar dalam fungsi cangkuk. Dengan cara ini, logik kita bertaburan dalam dua kitaran hayat, yang tidak kondusif untuk penyelenggaraan dan pembacaan. beforeUnmount
, logik penciptaan dan pemusnahan disatukan, dan kod itu lebih elegan dan mudah dibaca~watchEffect
// 定时器注册和销毁 watchEffect((onInvalidate) => { const timer = setInterval(()=> { // ... }, 1000) onInvalidate(() => clearInterval(timer)) }) const handleClick = () => { // ... } // dom的监听和取消监听 onMounted(()=>{ watchEffect((onInvalidate) => { document.querySelector('.btn').addEventListener('click', handleClick, false) onInvalidate(() => document.querySelector('.btn').removeEventListener('click', handleClick)) }) })
Senario 2 : Menggunakan watchEffect Buat pendikit anti goncang (seperti membatalkan permintaan)
const id = ref(13) watchEffect(onInvalidate => { // 异步请求 const token = performAsyncOperation(id.value) // 如果id频繁改变,会触发失效函数,取消之前的接口请求 onInvalidate(() => { // id has changed or watcher is stopped. // invalidate previously pending async operation token.cancel() }) })
juga boleh melakukan banyak perkara, seperti membuka watchEffect
tetingkap Pop timbul yang diubah suai, jika perubahan dalam modal
dikesan, kita boleh menetapkan semula parameter awal dalam fungsi id
... Ini hanya pengenalan, saya harap semua orang akan meneroka lebih lanjut~onInvalidate
Pembangunan bahagian hadapan web, Video pengaturcaraan asas)
Atas ialah kandungan terperinci Ketahui tentang watchEffect dalam Vue3 dalam satu artikel dan bincangkan tentang senario aplikasinya!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Vue.js sesuai untuk projek kecil dan sederhana dan lelaran yang cepat, sementara React sesuai untuk aplikasi besar dan kompleks. 1) Vue.js mudah digunakan dan sesuai untuk situasi di mana pasukan tidak mencukupi atau skala projek kecil. 2) React mempunyai ekosistem yang lebih kaya dan sesuai untuk projek dengan prestasi tinggi dan keperluan fungsional yang kompleks.

Menggunakan bootstrap dalam vue.js dibahagikan kepada lima langkah: Pasang bootstrap. Import bootstrap di main.js. Gunakan komponen bootstrap secara langsung dalam templat. Pilihan: Gaya tersuai. Pilihan: Gunakan pemalam.

Anda boleh menambah fungsi ke butang VUE dengan mengikat butang dalam templat HTML ke kaedah. Tentukan kaedah dan tulis logik fungsi dalam contoh Vue.

Pilihan Watch di Vue.js membolehkan pemaju mendengar perubahan dalam data tertentu. Apabila data berubah, tontonkan mencetuskan fungsi panggil balik untuk melakukan paparan kemas kini atau tugas lain. Pilihan konfigurasinya termasuk segera, yang menentukan sama ada untuk melaksanakan panggilan balik dengan serta -merta, dan mendalam, yang menentukan sama ada untuk mendengarkan secara rekursif terhadap objek atau tatasusunan.

Pembangunan pelbagai halaman Vue adalah cara untuk membina aplikasi menggunakan rangka kerja VUE.JS, di mana permohonan dibahagikan kepada halaman berasingan: Penyelenggaraan kod: Memisahkan aplikasi ke dalam beberapa halaman boleh menjadikan kod lebih mudah untuk dikendalikan dan diselenggarakan. Modularity: Setiap halaman boleh digunakan sebagai modul yang berasingan untuk penggunaan semula dan penggantian mudah. Routing mudah: Navigasi antara halaman boleh diuruskan melalui konfigurasi penghalaan mudah. Pengoptimuman SEO: Setiap halaman mempunyai URL sendiri, yang membantu SEO.

Terdapat tiga kaedah umum untuk vue.js untuk melintasi tatasusunan dan objek: Arahan V-untuk digunakan untuk melintasi setiap elemen dan membuat templat; Arahan V-mengikat boleh digunakan dengan V-untuk menetapkan nilai atribut secara dinamik untuk setiap elemen; dan kaedah .map boleh menukar elemen array ke dalam tatasusunan baru.

Terdapat dua cara untuk melompat elemen div di Vue: Gunakan Vue Router dan tambahkan komponen router-link. Tambah pendengar acara @Click dan panggil ini. $ Router.push () kaedah untuk melompat.

Kaedah untuk melaksanakan lompatan tag dalam Vue termasuk: menggunakan tag dalam templat HTML untuk menentukan atribut HREF. Gunakan komponen router-link routing VUE. Gunakan ini. $ Router.push () kaedah dalam JavaScript. Parameter boleh dilalui melalui parameter pertanyaan dan laluan dikonfigurasikan dalam pilihan penghala untuk lompatan dinamik.
