useEffect: Side Effect
Penjelasan
useEffect dipakai untuk menjalankan "side effect" — kode yang berinteraksi dengan dunia di LUAR proses render React murni, mis. fetch data ke API, mengatur timer, atau manipulasi DOM langsung. Argumen kedua (dependency array) menentukan KAPAN effect-nya dijalankan ulang: [] berarti cuma sekali saat komponen pertama muncul, [dep] berarti dijalankan ulang tiap dep berubah.
Contoh Konsep
import { useState, useEffect } from 'react';
function JudulDinamis({ jumlahPesan }) {
useEffect(() => {
document.title = `Kamu punya ${jumlahPesan} pesan baru`;
}, [jumlahPesan]); // dijalankan ulang tiap jumlahPesan berubah
useEffect(() => {
console.log('Komponen pertama kali muncul');
}, []); // cuma sekali
return <p>Cek judul tab browser</p>;
}
Praktikum
Buat komponen dengan useEffect yang mencetak "Komponen dimuat" ke console HANYA SEKALI saat komponen pertama muncul (dependency array kosong).
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Lupa mengisi dependency array (menulis useEffect(() => {...}) TANPA argumen kedua sama sekali) membuat effect-nya dijalankan ULANG SETIAP KALI komponen dirender — beda jauh dari [] yang cuma sekali. Ini kesalahan sangat umum yang bisa memicu infinite loop kalau effect-nya juga mengubah state.