Rumah > hujung hadapan web > tutorial js > Acara tersuai di penyemak imbas: alat berguna yang anda tidak tahu yang anda perlukan

Acara tersuai di penyemak imbas: alat berguna yang anda tidak tahu yang anda perlukan

Susan Sarandon
Lepaskan: 2025-01-28 04:33:09
asal
707 orang telah melayarinya

Custom Events in the Browser: A Handy Tool You Didn

Baru -baru ini, saya dapati kuasa acara penyemak imbas tersuai - alat yang menghairankan yang saya tidak pernah diterokai sebelum ini. Anda boleh membuat dan mencetuskan acara tersuai anda sendiri, kemudian dengar mereka dalam permohonan anda. Ini membuka kemungkinan komunikasi yang cekap.

mengapa menggunakan acara tersuai?

mari kita gambarkan dengan contoh dunia nyata. Saya sedang membangunkan lanjutan krom menggunakan React, dengan pelbagai modul dan logik bebas, beberapa komponen React Outside (dalam fail typescript mandiri). Saya memerlukan kaedah komunikasi antara modul yang mantap.

Walaupun spesifik lanjutan adalah sulit, bayangkan perkhidmatan untuk pengeluar kereta (Toyota, Ford, Mercedes). Setiap memerlukan pengendalian yang unik, menghasilkan fail logik yang berasingan - bukan reaksi komponen. Alat reaksi standard seperti

, konteks, atau redux/mobx tidak boleh digunakan secara langsung. useState

acara tersuai menyediakan penyelesaian.

bagaimana peristiwa tersuai berfungsi

Acara tersuai membolehkan anda membuat, menghantar, dan mendengar peristiwa, lulus data tersuai. Sintaks teras adalah mudah:

Menambah pendengar:

<code class="language-javascript">window.addEventListener(type, listener);</code>
Salin selepas log masuk
  • : rentetan sensitif kes (nama acara). type
  • : Fungsi yang dilaksanakan apabila acara dihantar. Objek pilihan listener boleh ditambah (lihat dokumentasi untuk butiran). options

Menghantar peristiwa:

<code class="language-javascript">const event = new CustomEvent(eventName, { detail });
window.dispatchEvent(event);</code>
Salin selepas log masuk
  • : nama acara (mesti sepadan dengan eventName dalam type). addEventListener
  • : Objek yang mengandungi data yang dihantar kepada pendengar. Ini menjadikan peristiwa tersuai sangat fleksibel. detail
Contoh dunia nyata: React and Custom Events

dalam lanjutan krom saya:

  1. pendengar acara (useeffect dalam app.tsx):
<code class="language-javascript">useEffect(() => {
    const handleCustomEvent = (event: CustomEvent) => {
        console.log(event.detail);
    };

    window.addEventListener(ADD_CUSTOM_EVENT, handleCustomEvent);

    return () => {
        window.removeEventListener(ADD_CUSTOM_EVENT, handleCustomEvent);
    };
}, []);</code>
Salin selepas log masuk
<code>*   `ADD_CUSTOM_EVENT`: A constant (prevents typos).
*   `handleCustomEvent`: Logs the event's `detail` object (in this simplified example).</code>
Salin selepas log masuk
  1. Menghantar peristiwa: dari mana saja:
<code class="language-javascript">const event = new CustomEvent('ADD_CUSTOM_EVENT', { detail: { key: 'exampleKey', value: 'exampleValue' } });
window.dispatchEvent(event);</code>
Salin selepas log masuk
mengapa saya menghargai pendekatan ini

Acara tersuai menyediakan penyelesaian yang bersih dan cekap untuk komunikasi silang modul dalam lanjutan saya. Ia melangkaui keperluan mekanisme spesifik reaksi seperti konteks atau perpustakaan pengurusan negeri, yang menawarkan pendekatan yang mudah dan elegan untuk cabaran komunikasi yang kompleks dalam aplikasi web. Saya harap ini membuktikan membantu orang lain!

Atas ialah kandungan terperinci Acara tersuai di penyemak imbas: alat berguna yang anda tidak tahu yang anda perlukan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan