Conditional Rendering: Taruh di Dalam Komponen

Conditional Rendering: Taruh di Dalam Komponen

Artikel ini sudah lama

Artikel ini ditulis lebih dari setahun yang lalu. Beberapa informasi mungkin sudah usang.

Saat membangun aplikasi React, ada pertanyaan yang sering muncul:

Apakah sebaiknya saya melakukan conditional rendering sebuah component dari parent, atau di dalam component itu sendiri?

Jawabannya ada di prinsip inti React: taruh logika di tempat state itu berada.

Contoh Nyata: Notification Banner

Misalnya kamu ingin menampilkan notifikasi ketika ada pesan baru. Kamu menggunakan context untuk melacak state notifikasi.

✅ Pendekatan yang Benar: Biarkan Child yang Menangani

// NotificationBanner.js import React, { useContext } from "react"; import { NotificationContext } from "./NotificationContext"; const NotificationBanner = () => { const { hasNewNotification, message } = useContext(NotificationContext); if (!hasNewNotification) return null; return ( <div className="rounded bg-yellow-100 p-4 shadow"> <strong>New Notification:</strong> {message} </div> ); }; export default NotificationBanner;
// Dashboard.js import NotificationBanner from "./NotificationBanner"; const Dashboard = () => ( <div> <NotificationBanner /> {/* Konten dashboard lainnya */} </div> );

Kenapa pendekatan ini bagus:

  • Component punya kendali penuh atas kapan ia harus ditampilkan atau disembunyikan.
  • Parent tetap bersih dan tidak perlu tahu urusan dalam component.
  • Lebih mudah untuk di-reuse dan dipahami.

❌ Kurang Ideal: Parent yang Menangani Logikanya

// Dashboard.js import NotificationBanner from "./NotificationBanner"; import { useContext } from "react"; import { NotificationContext } from "./NotificationContext"; const Dashboard = () => { const { hasNewNotification, message } = useContext(NotificationContext); return ( <div> {hasNewNotification && <NotificationBanner message={message} />} {/* Konten dashboard lainnya */} </div> ); };

Kekurangannya: parent jadi harus tahu logika yang seharusnya menjadi urusan child, sehingga modularitas dan reusability berkurang.


🔚 Kesimpulan

  • Taruh conditional rendering di dalam component jika logikanya bergantung pada internal state atau context.
  • Cara ini membuat React component kamu lebih mudah dirawat, lebih modular, dan sesuai dengan best practice yang idiomatis.

Suka artikel ini? Bagikan ke temanmu atau salin link-nya!

Artikel Serupa