⊗jsrtPmHkURf 12 of 47 menu

Hook useRef untuk Bekerja dengan Ref di React

Pada pelajaran ini, kita akan bekerja dengan ref. Untuk kejelasan, mari kita bahas cara kerja hook useRef dengan membandingkannya dengan hook useState.

Mari buat komponen dengan tombol:

return ( <div> <button> state click </button> </div> );

Impor useState ke dalam komponen:

import { useState } from 'react';

Dan buat state state:

const [state, setState] = useState(0);

Dan sekarang, mari kita buat agar saat diklik tombol, state kita bertambah sebesar 1. Nilai state akan kita tampilkan langsung di teks tombol:

<button onClick={handleStateClick}> state click: {state} </button>

Jelaskan fungsi untuk menangani klik pada tombol handleStateClick:

function handleStateClick() { setState(state + 1); }

Mari klik tombolnya dan lihat bagaimana nilai state bertambah.

Dan sekarang mari buat komponen App, tetapi menggunakan bukan state, melainkan ref.

Pertama, impor useRef ke dalam komponen:

import { useRef } from 'react';

Dan buat ref ref. Hasil dari hook useRef adalah objek ref dengan satu-satunya properti current, yang akan menjadi perhatian kita selanjutnya. Atur nilai awalnya ke 0:

const ref = useRef(0);

Pasang penangan klik pada tombol. Ingat, kita harus membaca/mengubah bukan ref itu sendiri, melainkan propertinya current:

<button onClick={handleRefClick}> ref click: {ref.current} </button>

Tambahkan fungsi untuk menangani klik pada tombol kita. Di sini kita akan menambah current sebesar 1, seperti pada contoh sebelumnya dengan state. Berbeda dengan state yang memerlukan fungsi setState untuk mengubah nilainya, kita bekerja dengan properti ref secara langsung:

function handleRefClick() { ref.current = ref.current + 1; }

Sekarang mari klik tombol kita. Dan apa yang kita lihat? Saat diklik, nilai yang awalnya 0, tetap tidak berubah.

Anda tentu saja mungkin mulai meragukan apakah nilainya memang berubah. Mari kita periksa. Untuk itu, dalam fungsi penangan klik tambahkan baris kode untuk menampilkan nilai current ke konsol:

function handleRefClick() { ref.current = ref.current + 1; console.log('ref click: ' + ref.current); }

Dan sekarang, buka konsol di browser, sekali lagi klik tombol dan pastikan bahwa nilainya memang berubah setiap kali diklik dan tidak ada penipuan.

Sekarang kita melihat bahwa berbeda dengan state, perubahan nilai ref tidak menyebabkan render ulang komponen. Itulah sebabnya kita setiap kali dalam teks tombol melihat nilai awal 0.

Dengan demikian, jika data Anda digunakan untuk rendering, maka simpanlah dalam state, dan jika Anda tidak perlu rendering, dalam hal ini penggunaan ref bisa menjadi lebih efektif.

Misalkan dalam komponen Anda ada paragraf dengan teks 'text' dan tombol. Buatlah agar setiap kali diklik tombol pada akhir teks paragraf ditambahkan tanda seru. Lakukan ini dengan menggunakan state.

Buat komponen App, tetapi alih-alih state sekarang gunakan ref. Pastikan bahwa saat tombol ditekan teks paragraf tidak akan berubah. Tambahkan juga tampilan teks paragraf ke konsol, buka konsol dan pastikan, bahwa sebenarnya teksnya berubah.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak