0Pricing
React Academy · Pelajaran

Input Tak Terkontrol dengan useRef

Akses nilai input DOM melalui ref, bukan state, untuk skenario formulir sederhana.

Input Tak Terkontrol dengan useRef adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar React Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus React Academy mencakup 4 pelajaran total.

Selamat Datang

Dalam pelajaran ini, Anda akan menggunakan input tak terkontrol dengan useRef untuk mengakses nilai input DOM tanpa mengelolanya dalam status React.

Terkontrol vs Tak Terkontrol

**Input terkontrol** memiliki nilai yang digerakkan oleh status React (nilai + onChange). **Input tak terkontrol** mengelola nilainya sendiri di DOM; React membacanya melalui ref hanya ketika diperlukan.
// Controlled
<input value={name} onChange={e => setName(e.target.value)} />

// Uncontrolled
const nameRef = useRef();
<input ref={nameRef} defaultValue="" />

Membaca Nilai Saat Pengiriman

Dengan input tak terkontrol, bacalah nilainya ketika pengguna mengirimkan formulir dengan mengakses `ref.current.value`. Tidak ada pembaruan status saat pengguna mengetik.
function Form() {
  const nameRef = useRef();
  const handleSubmit = (e) => {
    e.preventDefault();
    console.log(nameRef.current.value);
  };
  return (
    <form onSubmit={handleSubmit}>
      <input ref={nameRef} />
      <button type="submit">Submit</button>
    </form>
  );
}

defaultValue vs value

Untuk input tak terkontrol, gunakan `defaultValue` (bukan `value`) untuk menetapkan nilai awal. Menetapkan `value` tanpa `onChange` membuat React menampilkan peringatan dan input menjadi hanya-baca.
<input ref={nameRef} defaultValue="Initial text" />

Kapan Menggunakan Input Tak Terkontrol

Input tak terkontrol berguna untuk: formulir sederhana yang hanya memerlukan nilai saat dikirimkan, input berkas (yang tidak dapat dikontrol oleh React), dan input yang sangat mementingkan kinerja sehingga penghindaran render ulang diperlukan.

Mengatur Ulang Input Tak Terkontrol

Untuk mengatur ulang input tak terkontrol, tetapkan `ref.current.value = ''` secara imperatif. Atau, ubah properti `key` komponen untuk memaksa React memasangnya kembali dengan simpul DOM baru.
// Reset imperatively
nameRef.current.value = '';

// Or remount
setFormKey(k => k + 1);
<input key={formKey} ref={nameRef} />

Beberapa Ref untuk Beberapa Input

Untuk formulir dengan beberapa bidang tak terkontrol, buat ref terpisah untuk setiap input. Akses `.current.value` dari setiap ref saat formulir dikirimkan.
const emailRef = useRef();
const passwordRef = useRef();

<input ref={emailRef} type="email" />
<input ref={passwordRef} type="password" />

Memfokuskan Saat Pemasangan

useRef sering digunakan untuk memfokuskan input secara otomatis saat komponen dipasang. Baca ref di dalam useEffect setelah pemasangan.
const inputRef = useRef();
useEffect(() => {
  inputRef.current?.focus();
}, []);
<input ref={inputRef} />

Input Tak Terkontrol dan Validasi

Memvalidasi input tak terkontrol mengharuskan pembacaan nilai secara imperatif saat formulir dikirimkan. Untuk validasi waktu nyata, cara ini lebih rumit daripada input terkontrol. Utamakan input terkontrol ketika Anda memerlukan umpan balik langsung.

Kompromi useRef

Input tak terkontrol menghindari render ulang, tetapi mengorbankan reaktivitas React. Anda tidak dapat merender secara kondisional berdasarkan nilai input secara waktu nyata tanpa membaca ref dan memperbarui status secara manual.

Pemeriksaan Singkat

Properti apa yang sebaiknya Anda gunakan untuk menetapkan nilai awal input tak terkontrol di React?

Ringkasan

Input tak terkontrol menggunakan ref untuk membaca nilai sesuai kebutuhan. Gunakan defaultValue untuk menetapkan nilai awal, baca ref.current.value saat formulir dikirimkan, dan atur ulang dengan menghapus nilai ref atau mengubah key.

Berikutnya

Pelajaran berikutnya: **Input Berkas & Membaca Data Berkas** — Anda akan menangani input berkas, membaca metadata dan data gambar dengan FileReader.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Input Tak Terkontrol dengan useRef” gratis?

Ya — teks lengkap “Input Tak Terkontrol dengan useRef” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus React Academy, upgrade ke CoddyKit PRO. Kursus React Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Input Tak Terkontrol dengan useRef”?

Akses nilai input DOM melalui ref, bukan state, untuk skenario formulir sederhana. Kamu berlatih React Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai React Academy?

Tidak diperlukan pengalaman sebelumnya. React Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Input Tak Terkontrol dengan useRef” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Input Tak Terkontrol dengan useRef
  2. Input File dan Membaca Data File
  3. Antarmuka Unggah File dengan Seret dan Lepas
  4. Mengunggah File ke API Backend
← Kembali ke React Academy