ReactJS #8: Menangani Event
Membuat Tombol Bisa Diklik dan Aksi Lainnya
Halo, jagoan event! 🎮
Pernahkah kamu menekan bel rumah? Saat bel ditekan, akan keluar suara "ding-dong". Di React, kita juga bisa membuat sesuatu terjadi saat pengguna melakukan aksi, misalnya mengeklik tombol, mengetik di kotak input, atau mengirim formulir. Aksi-aksi ini disebut event.
Event seperti menekan bel: kita bisa memasang reaksi!
🎯 Event di React
Di React, penulisan event hampir sama dengan HTML, tapi ada sedikit perbedaan:
- Nama event menggunakan camelCase (huruf besar di tengah), misalnya
onClick,onChange,onSubmit. - Nilai event handler ditulis dengan kurung kurawal
{ }, berisi fungsi yang akan dijalankan.
Contoh di HTML: <button onclick="alert('Halo')">Klik</button>
Di React: <button onClick={handleClick}>Klik</button>
🖱️ Contoh 1: onClick pada Tombol
Buat komponen sederhana yang menampilkan pesan saat tombol diklik.
Penjelasan:
onClick={handleClick}– kita pasang fungsihandleClicksebagai penangan event. Fungsi ini akan dipanggil saat tombol diklik.- Di dalam
handleClick, kita mengubah statepesansehingga muncul teks di layar.
📌 Cara Lain Menulis Handler
Kita bisa menulis fungsi langsung di dalam onClick (fungsi panah inline):
Atau jika handler perlu argumen:
onClick={sapa('Andi')} karena fungsi akan langsung dipanggil saat render, bukan saat diklik. Selalu gunakan fungsi panah jika perlu argumen.
📝 Contoh 2: onChange pada Input (Menangkap Ketikan)
Event onChange dipanggil setiap kali nilai input berubah. Biasanya digunakan bersama state.
event.target.value berisi teks terbaru dari input. State akan diperbarui setiap kali ada ketikan, dan komponen di-render ulang dengan nilai baru.
📬 Contoh 3: onSubmit pada Form
Saat form dikirim (biasanya dengan tombol submit atau tekan Enter), kita bisa menangkapnya dengan onSubmit. Penting untuk mencegah perilaku default form (refresh halaman) dengan event.preventDefault().
Tanpa event.preventDefault(), halaman akan reload saat form dikirim dan kita kehilangan state.
🎭 Event Lain yang Berguna
onMouseEnter,onMouseLeave– saat mouse masuk/keluar elemen.onFocus,onBlur– saat input mendapat/kehilangan fokus.onKeyDown,onKeyUp– saat tombol keyboard ditekan.onDoubleClick– klik dua kali.
Contoh penggunaan onMouseEnter untuk mengubah warna:
🧪 Latihan: Aplikasi "Pesan Rahasia"
Buat komponen PesanRahasia dengan ketentuan:
- Ada input teks untuk mengetik pesan rahasia.
- Ada tombol "Tampilkan Pesan" yang jika diklik akan menampilkan pesan di bawah input.
- Ada tombol "Hapus" yang mengosongkan input dan menyembunyikan pesan.
- Gunakan state untuk menyimpan teks input dan teks yang ditampilkan.
- Tambahkan fitur: saat menekan tombol Enter di input, pesan langsung ditampilkan (petunjuk: gunakan event
onKeyDowndan cekevent.key === 'Enter').
Kerangka kode (coba isi sendiri):
Isi bagian ??? dengan kode yang tepat. Coba jalankan dan lihat hasilnya.
setPesanTampil(inputValue); untuk menampilkan, dan setInputValue(''); setPesanTampil(''); untuk menghapus.
🚀 Kesimpulan
- Event di React mirip HTML tapi pakai camelCase dan nilai berupa fungsi.
onClickuntuk klik,onChangeuntuk input,onSubmituntuk form.- Gunakan
event.preventDefault()untuk mencegah refresh pada form. - Untuk mengirim argumen ke handler, gunakan fungsi panah di dalam atribut event.
- Kita bisa membuat interaksi yang seru dengan kombinasi state dan event.
Di artikel selanjutnya kita akan belajar tentang useState Lebih Dalam dan bermain dengan counter, input, dan tampilan dinamis. Sampai jumpa!