Event React JS
Event React JS
Sama seperti HTML, React dapat melakukan tindakan berdasarkan peristiwa pengguna.
React memiliki event yang sama dengan HTML: klik, ubah, arahkan mouse, dll.
Menambahkan Event
onClick bukannya onclick.
onClick={shoot} bukannya onClick="shoot()".
React:
HTML:
Handler Event
Praktik yang baik adalah menempatkan handler event sebagai metode di kelas komponen:
Contoh:
1
2
3 class Football extends React.Component {
4 shoot() {
5 alert("Great Shot!");
6 }
render() {
7 return (
8 <button onClick={this.shoot}>Take the shot!</button>
9 );
1 }
0 }
1
ReactDOM.render(<Football />, document.getElementById('root'));
1
1
2
Bind this
Untuk metode dalam React, kata kunci this harus mewakili komponen yang memiliki
metode.
Itu sebabnya kamu harus menggunakan fungsi panah. Dengan fungsi panah, this akan
selalu mewakili objek yang mendefinisikan fungsi panah.
Contoh:
1
2
3
4
5 class Football extends React.Component {
6 shoot = () => {
7 alert(this);
/*
8 The 'this' keyword refers to the component object
9 */
1 }
0 render() {
return (
1
<button onClick={this.shoot}>Take the shot!</button>
1 );
1 }
2 }
1
3 ReactDOM.render(<Football />, document.getElementById('root'));
1
4
1
5
Dalam komponen kelas, kata kunci this tidak didefinisikan secara default, jadi dengan
fungsi reguler kata kunci this mewakili objek yang disebut metode, yang dapat berupa
objek jendela global, tombol HTML, atau apa pun.
Contoh:
Melewati Argumen
Jika kamu ingin mengirim parameter ke event handler, kamu memiliki dua opsi:
Contoh:
Atau:
Contoh:
1
2
3 class Football extends React.Component {
4 shoot(a) {
alert(a);
5 }
6 render() {
7 return (
8 <button onClick={this.shoot.bind(this, "Goal")}>Take the shot!
</button>
9
);
1 }
0 }
1
1 ReactDOM.render(<Football />, document.getElementById('root'));
1
2
Catatan pada contoh kedua: Jika kamu mengirim argumen tanpa menggunakan metode
bind, ( this.shoot(this, "Goal")bukan this.shoot.bind(this, "Goal")), fungsi
shoot akan dieksekusi ketika halaman dimuat alih-alih menunggu tombol diklik.
Dalam contoh kami acara adalah acara “klik”. Perhatikan bahwa sekali lagi sintaksnya
berbeda ketika menggunakan fungsi arrow atau tidak.
Dengan fungsi arrow kamu harus mengirim argumen acara secara manual:
Contoh:
Tanpa fungsi panah, objek Bereaksi acara dikirim secara otomatis sebagai argumen terakhir
saat menggunakan metode bind():
Contoh: