Daftar eventHandler di React

mukharomdev


mukharomdev
Berikut adalah daftar event handler umum yang digunakan di React, dikelompokkan berdasarkan kategori:
1. Mouse Events
Event Handler | Keterangan |
---|---|
onClick | Klik kiri mouse |
onDoubleClick | Klik ganda |
onMouseDown | Saat tombol mouse ditekan |
onMouseUp | Saat tombol mouse dilepas |
onMouseEnter | Saat kursor masuk ke area elemen |
onMouseLeave | Saat kursor keluar dari area elemen |
onMouseOver | Saat kursor berada di atas elemen |
onMouseOut | Saat kursor keluar dari elemen atau anaknya |
onContextMenu | Klik kanan mouse |
Contoh:
<button onClick={() => console.log("Diklik!")}>Klik Saya</button>
2. Keyboard Events
Event Handler | Keterangan |
---|---|
onKeyDown | Saat tombol keyboard ditekan |
onKeyUp | Saat tombol keyboard dilepas |
onKeyPress | Saat tombol ditekan (tidak termasuk modifier keys seperti Shift) |
Contoh:
<input
onKeyDown={(e) => {
if (e.key === 'Enter') console.log("Enter ditekan!");
}}
/>
3. Form Events
Event Handler | Keterangan |
---|---|
onChange | Saat nilai input/select/textarea berubah |
onSubmit | Saat form di-submit |
onInput | Saat nilai input berubah (lebih cepat dari onChange) |
onInvalid | Saat form input tidak valid |
onReset | Saat form di-reset |
Contoh:
<form onSubmit={(e) => {
e.preventDefault();
console.log("Form di-submit!");
}}>
<input type="text" onChange={(e) => console.log(e.target.value)} />
</form>
4. Focus & Blur Events
Event Handler | Keterangan |
---|---|
onFocus | Saat elemen mendapat fokus |
onBlur | Saat elemen kehilangan fokus |
Contoh:
<input
onFocus={() => console.log("Input fokus!")}
onBlur={() => console.log("Input kehilangan fokus!")}
/>
5. Touch Events
Event Handler | Keterangan |
---|---|
onTouchStart | Saat jari menyentuh layar |
onTouchEnd | Saat jari diangkat dari layar |
onTouchMove | Saat jari bergerak di layar |
onTouchCancel | Saat sentuhan dibatalkan |
6. Drag & Drop Events
Event Handler | Keterangan |
---|---|
onDrag | Saat elemen di-drag |
onDragStart | Saat drag dimulai |
onDragEnd | Saat drag selesai |
onDragOver | Saat elemen di-drag di atas target |
onDrop | Saat elemen di-drop ke target |
7. Clipboard Events
Event Handler | Keterangan |
---|---|
onCopy | Saat konten di-copy |
onCut | Saat konten di-cut |
onPaste | Saat konten di-paste |
Contoh:
<div
onCopy={() => console.log("Teks di-copy!")}
onPaste={() => console.log("Teks di-paste!")}
>
Salin teks ini.
</div>
8. Media Events
Event Handler | Keterangan |
---|---|
onPlay | Saat media mulai diputar |
onPause | Saat media dijeda |
onEnded | Saat media selesai diputar |
onVolumeChange | Saat volume diubah |
9. Scroll Events
Event Handler | Keterangan |
---|---|
onScroll | Saat elemen di-scroll |
10. Image Events
Event Handler | Keterangan |
---|---|
onLoad | Saat gambar selesai dimuat |
onError | Saat gambar gagal dimuat |
Contoh:
<img
src="image.jpg"
onLoad={() => console.log("Gambar dimuat!")}
onError={() => console.log("Gagal memuat gambar!")}
/>
11. Animation/Transition Events
Event Handler | Keterangan |
---|---|
onAnimationStart | Saat animasi CSS dimulai |
onAnimationEnd | Saat animasi CSS selesai |
onTransitionEnd | Saat transisi CSS selesai |
12. Window/Global Events
Untuk event global seperti resize atau scroll, gunakan useEffect:
useEffect(() => {
const handleResize = () => console.log("Ukuran window berubah!");
window.addEventListener('resize', handleResize);
return () => window.removeEventListener('resize', handleResize);
}, []);
Catatan Penting:
-
Synthetic Events:
React menggunakan synthetic events (event wrapper) untuk konsistensi di semua browser.
Contoh: e.preventDefault() untuk mencegah perilaku default. -
Event Pooling:
Objek event di React di-reuse untuk optimasi. Jika perlu akses event secara asinkron, gunakan e.persist(). -
Parameter Event:
Event handler menerima objek event sebagai argumen pertama:<button onClick={(e) => console.log(e.target)}>Klik</button>
-
Perbedaan dengan DOM Native Events:
- Nama event camelCase (bukan lowercase).
- Handler di-pass sebagai prop (bukan string).
Contoh: onclick → onClick, onsubmit → onSubmit.
Semoga daftar ini membantu! 🚀