Lompat ke konten utama
←

React Dasar

Pelajaran 10 dari 17

Event dan state

State: ingatan komponen

Setelah pelajaran ini kamu bisa menyimpan data yang berubah dengan useState, memperbaruinya dari penangan event, dan menjelaskan bahwa setiap salinan komponen punya state sendiri.

±13 menitDiperiksa 24 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

Variabel lokal tidak cukup untuk data yang berubah karena interaksi. Ada dua penghalang: variabel lokal dibuat ulang dari awal setiap kali komponen dirender, dan mengubah variabel lokal tidak membuat React merender ulang. State mengatasi keduanya: nilainya disimpan React di antara render, dan mengubahnya memicu render baru.

import { useState } from "react";

export default function Porsi() {
  const [porsi, setPorsi] = useState(1);
  return (
    <>
      <p>{porsi} porsi</p>
      <button onClick={() => setPorsi(porsi + 1)}>Tambah porsi</button>
    </>
  );
}

useState menerima nilai awal dan mengembalikan pasangan: nilai state untuk render ini dan fungsi pengubahnya. Konvensinya [sesuatu, setSesuatu]. Memanggil setPorsi menyimpan nilai baru dan memicu render ulang; pada render berikutnya useState mengembalikan nilai yang tersimpan, bukan nilai awal lagi.

Fungsi yang namanya diawali use disebut Hook. Hook hanya boleh dipanggil di tingkat teratas komponen, sebelum return apa pun, dan tidak di dalam if, perulangan, atau fungsi bersarang. React mengenali setiap state dari urutan pemanggilan Hook, jadi urutan itu harus sama di setiap render.

State melekat pada setiap salinan komponen di layar. Dua <Porsi /> yang dirender berdampingan punya state masing-masing; mengubah yang satu tidak menyentuh yang lain. State juga privat: komponen induk tidak bisa membacanya.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Apa masalah komponen di bawah?

function Poin({ member }) {
  if (member) {
    const [poin, setPoin] = useState(0);
    return <button onClick={() => setPoin(poin + 10)}>{poin} poin</button>;
  }
  return <p>Daftar jadi member</p>;
}
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 1 lagi