React

React Hooks: useState dan useEffect Explained

A

Alex Coder

Mobile Developer

Bagikan:
31 Okt 2025 12 min 2377

Pengenalan React Hooks

React Hooks diperkenalkan di React 16.8 dan mengubah cara kita menulis komponen React. Dengan hooks, kita bisa menggunakan state dan lifecycle features tanpa menulis class component.

useState Hook

useState adalah hook yang memungkinkan kita menambahkan state ke functional component.

const [count, setCount] = useState(0);

useEffect Hook

useEffect digunakan untuk melakukan side effects dalam functional component, seperti fetching data, subscriptions, atau mengubah DOM secara manual.

useEffect(() => {
  document.title = `You clicked ${count} times`;
}, [count]);

Rules of Hooks

  • Hanya panggil hooks di level teratas
  • Hanya panggil hooks dari React functions

Contoh Kode

Contoh useState dan useEffect

JavaScript
import React, { useState, useEffect } from 'react';

function Counter() {
  const [count, setCount] = useState(0);
  const [name, setName] = useState('');
  
  // Effect untuk update document title
  useEffect(() => {
    document.title = `Click count: ${count}`;
  }, [count]);
  
  // Effect untuk fetch data (dengan cleanup)
  useEffect(() => {
    const controller = new AbortController();
    
    fetch('/api/user', { signal: controller.signal })
      .then(res => res.json())
      .then(data => setName(data.name));
    
    // Cleanup function
    return () => controller.abort();
  }, []);
  
  return (
    <div>
      <p>Hi, {name}! You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>
        Click me
      </button>
    </div>
  );
}
A

Tentang Penulis

Mobile developer focused on Flutter dan React Native.

Komentar (3)

Silakan login untuk memberikan komentar

Masuk Sekarang
A

a

2 bulan yang lalu

Saya newbie dan ini sangat membantu!

S

Sarah Developer

2 bulan yang lalu

Terima kasih atas feedback-nya!

A

Alex Coder

2 bulan yang lalu

Bisa share source code lengkapnya?

S

Sarah Developer

2 bulan yang lalu

Ini yang saya cari-cari! Perfect timing.