Id (Indonesia) Translation

ReactJS - Cycle of Life Component Using React Hooks

Halo, para pengembang yang sedang berkembang! Hari ini, kita akan melangkah ke dalam dunia ReactJS, dengan fokus pada siklus hidup komponen menggunakan React Hooks. Jangan khawatir jika Anda baru saja memulai programming - saya akan mengarahkan Anda di setiap langkah dengan penjelasan yang jelas dan banyak contoh. mari kita masuk ke dalamnya!

ReactJS - Component Life Cycle Using React Hooks

Pengenalan React Hooks

Sebelum kita memasuki siklus hidup, mari kita mengerti apa itu React Hooks. Gamalkan Hooks sebagai alat khusus yang memungkinkan Anda menggunakan state dan fitur lainnya dari React tanpa menulis kelas. Itu seperti tongkat sihir yang memberikan superpower ke komponen fungsional Anda!

Mengapa Hooks?

Dalam zaman dulu (well, tidak terlalu tua, tapi dalam tahun teknologi), kita harus menggunakan komponen kelas untuk mengelola state dan efek samping. Tetapi kelas bisa membingungkan, terutama bagi pemula. Hooks menyederhanakan proses ini, membuat kode kita lebih bersih dan lebih dapat digunakan kembali.

Siklus Hidup Komponen

Seperti kita manusia, komponen React memiliki siklus hidup. Mereka lahir (mounted), mereka tumbuh dan berubah (update), dan akhirnya, mereka tidak lagi diperlukan (unmounted). Memahami siklus ini sangat penting untuk membuat aplikasi React yang efisien.

Tiga Fase Siklus Hidup Komponen

  1. Mounting: Komponen sedang ditambahkan ke DOM.
  2. Updating: Komponen sedang dirender ulang karena perubahan props atau state.
  3. Unmounting: Komponen sedang dihapus dari DOM.

Sekarang, mari kita lihat bagaimana kita dapat mengelola fase ini menggunakan Hooks!

useState: Mengelola State Komponen

Hook useState adalah alat utama Anda untuk menambahkan state ke komponen fungsional. mari kita lihat contoh:

import React, { useState } from 'react';

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

return (
<div>
<p Anda mengklik {count} kali</p>
<button onClick={() => setCount(count + 1)}>
Klik saya
</button>
</div>
);
}

Dalam contoh ini, useState(0) menginisialisasi variabel state count dengan nilai 0. Fungsi setCount memungkinkan kita untuk memperbarui state. Setiap kali tombol diklik, setCount(count + 1) dipanggil, menambahkan count dan menyebabkan komponen dirender ulang.

useEffect: Mengelola Efek Samping

Hook useEffect adalah seperti pisau瑞士 army knife untuk mengelola efek samping di komponen Anda. Itu menggabungkan fungsionalitas beberapa metode siklus hidup dari komponen kelas.

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

function ExampleComponent() {
const [data, setData] = useState(null);

useEffect(() => {
// Efek ini dijalankan setelah setiap render
console.log('Komponen dirender');

// Simulasi panggilan API
const fetchData = async () => {
const response = await fetch('https://api.example.com/data');
const result = await response.json();
setData(result);
};

fetchData();

// Fungsi pembersihan
return () => {
console.log('Komponen akan diunmount atau dirender ulang');
};
}, []); // Array dependensi kosong berarti efek ini hanya dijalankan sekali saat komponen dimount

return (
<div>
{data ? <p>{data}</p> : <p>Mengambil data...</p>}
</div>
);
}

Contoh ini menunjukkan beberapa konsep penting:

  1. Efek dijalankan setelah komponen dirender.
  2. Kita mensimulasikan panggilan API untuk mengambil data.
  3. Fungsi pembersihan (dipanggil oleh efek) dijalankan sebelum komponen diunmount atau sebelum efek dijalankan ulang.
  4. Array dependensi kosong [] berarti efek ini hanya dijalankan sekali saat komponen dimount.

Custom Hooks: Membuat Logik Reusable

Salah satu fitur paling kuat Hooks adalah kemampuan untuk membuat Hooks khusus. Hooks ini memungkinkan Anda mengekstrak logik komponen ke fungsi yang dapat digunakan kembali. mari kita buat Hook khusus untuk mengelola input formulir:

import { useState } from 'react';

function useInput(initialValue) {
const [value, setValue] = useState(initialValue);

const handleChange = (event) => {
setValue(event.target.value);
};

return [value, handleChange];
}

// Menggunakan Hook khusus
function LoginForm() {
const [username, handleUsernameChange] = useInput('');
const [password, handlePasswordChange] = useInput('');

const handleSubmit = (event) => {
event.preventDefault();
console.log(`Masuk dengan ${username} dan ${password}`);
};

return (
<form onSubmit={handleSubmit}>
<input
type="text"
value={username}
onChange={handleUsernameChange}
placeholder="Username"
/>
<input
type="password"
value={password}
onChange={handlePasswordChange}
placeholder="Password"
/>
<button type="submit">Masuk</button>
</form>
);
}

Hook useInput ini mengenkapsulasi logik untuk mengelola input formulir, membuat komponen LoginForm menjadi lebih bersih dan dapat digunakan kembali.

Properti children React (Containment)

Properti children di React memungkinkan Anda untuk mengirim komponen sebagai data ke komponen lain, menyediakan cara untuk membuat komponen penutup. Konsep ini sering disebut sebagai "containment".

function Panel({ children, title }) {
return (
<div className="panel">
<h2>{title}</h2>
{children}
</div>
);
}

function App() {
return (
<Panel title="Selamat Datang">
<p>Ini adalah konten panel.</p>
<button>Klik saya!</button>
</Panel>
);
}

Dalam contoh ini, komponen Panel dapat menutupi segala jenis konten yang diberikan kepadanya sebagai anak, membuatnya sangat dapat digunakan kembali.

Kesimpulan

Kita telah meliputi banyak hal hari ini! Dari memahami dasar React Hooks hingga mengeksplorasi siklus hidup komponen dan bahkan membuat Hooks khusus. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba konsep ini dalam proyek Anda sendiri.

Berikut adalah tabel rujukan cepat Hooks yang kita diskusikan:

Hook Tujuan Contoh
useState Kelola state komponen const [count, setCount] = useState(0);
useEffect Kelola efek samping useEffect(() => { /* efek */ }, []);
Custom Hooks Buat logik reusable const [value, handleChange] = useInput('');

Selamat coding, dan may the Hooks be with you!

Credits: Image by storyset