Artikel ini membawakan anda pengetahuan yang berkaitan tentang vue, yang terutamanya memperkenalkan isu berkaitan tentang pemprosesan acara asas Vue merupakan aspek yang perlu bagi setiap projek Vue. Ia digunakan untuk menangkap input pengguna, berkongsi data dan banyak cara kreatif lain. Mari kita lihat bersama-sama, saya harap ia akan membantu semua orang.
[Cadangan berkaitan: tutorial video javascript, tutorial vue.js]
Pemprosesan acara Vue ialah Aspek yang perlu bagi setiap projek Vue. Ia digunakan untuk menangkap input pengguna, berkongsi data dan banyak cara kreatif lain.
Dalam artikel ini, saya akan membincangkan perkara asas dan memberikan beberapa contoh kod untuk mengendalikan acara.
Menggunakan arahan v-on (@ ringkasnya) kita boleh mendengar acara DOM dan menjalankan kaedah pengendali atau Javascript sebaris:
<div v-on:click='handleClick' /> <!-- 相当于 --> <div @click='handleClick' />
kami Kami akan merangkumi beberapa acara yang lebih biasa yang mungkin anda ingin tangkap, klik di sini untuk senarai lengkap acara DOM.
Kes penggunaan biasa dalam mana-mana rangka kerja web ialah mahukan komponen anak dapat memancarkan peristiwa kepada komponen induknya. Ini akan membolehkan pengikatan data dua hala.
Contohnya ialah menghantar data daripada komponen input kepada borang induk.
Sintaks untuk memancarkan peristiwa adalah berbeza bergantung pada sama ada kami menggunakan API Pilihan atau API Komposisi.
Dalam Options API, kita boleh panggil ini sahaja.$emit(eventName, payload):
export default { methods: { handleUpdate() { this.$emit('update', 'Hello World') } } }
Walau bagaimanapun, Composition API tidak mempunyai ini. Sebaliknya, kami boleh mengakses kaedah emit secara langsung menggunakan kaedah persediaan Vue3.
Parameter kedua kaedah persediaan ialah pembolehubah konteks, yang mengandungi tiga atribut: attrs, slot dan emit.
Selagi objek konteks diimport, emit boleh dipanggil dengan parameter yang sama seperti API Pilihan.
export default { setup (props, context) { const handleUpdate = () => { context.emit('update', 'Hello World') } return { handleUpdate } } }
Salah satu cara untuk mengemaskan kod anda ialah menggunakan penstrukturan objek untuk mengimport pancaran secara langsung. Ia kelihatan seperti ini.
export default { setup (props, { emit }) { const handleUpdate = () => { emit('update', 'Hello World') } return { handleUpdate } } }
Sama ada kami menggunakan API Pilihan atau API Komposisi, komponen induk kami mendengar acara tersuai dengan cara yang sama.
<HelloWorld @update='inputUpdated'/>
Jika kaedah yang kita pancarkan juga lulus nilai, kita boleh menangkapnya dalam dua cara berbeza - bergantung pada sama ada kita bekerja sebaris atau menggunakan kaedah lain.
Pertama, kita boleh menggunakan nilai $event yang diluluskan dalam templat.
<HelloWorld @update='inputUpdated($event)'/>
Kedua, jika kami menggunakan kaedah untuk mengendalikan acara, nilai yang diluluskan akan dihantar secara automatik kepada kaedah kami sebagai parameter pertama.