Mengenal Komponen Card Di Astro

Memahami komponen di Astro JS sebenarnya sangat mudah jika kita membayangkannya seperti mainan Lego. Komponen adalah potongan balok kecil yang bisa kita gunakan berulang kali untuk membangun sesuatu yang besar.

Mari kita bedah konsep komponen Card di Astro, cara menggunakannya, dan bagaimana memindahkan logika dari index.astro ke dalam Card tersebut.

1. Apa itu Komponen Card di Astro?

Komponen Card biasanya digunakan untuk menampilkan ringkasan informasi yang berulang, seperti daftar produk, portofolio, atau daftar postingan blog.

Alih-alih menulis struktur HTML yang sama berulang-ulang untuk setiap postingan di file utama (index.astro), kita membuat satu cetakan (template) bernama Card.astro, lalu mengirimkan data yang berbeda-beda ke dalamnya melalui Props (properti).

2. Cara Membuat dan Menggunakan Komponen Card

Mari kita praktikkan alur pembuatannya. Biasanya, komponen diletakkan di dalam folder src/components/.

Langkah Awal: Membuat Card.astro

Buat file baru di src/components/Card.astro. Komponen ini bertugas menerima data (judul dan tautan) lalu menampilkannya.

Cuplikan kode
 
---
// src/components/Card.astro
// 1. Definisikan Props yang akan diterima oleh Card ini
const { title, url } = Astro.props;
---

<div class="card">
  <h2>{title}</h2>
  <a href={url}>Baca Selengkapnya →</a>
</div>

<style>
  .card {
    border: 1px solid #ccc;
    padding: 1rem;
    border-radius: 8px;
    margin-bottom: 1rem;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  }
  a {
    color: #0070f3;
    text-decoration: none;
  }
</style>

3. Apakah kode di index.astro untuk menampilkan judul dipindah ke Card?

Ya, betul sekali! Logika HTML untuk menampilkan judul dan detail postingan dipindahkan ke dalam Card.astro.

Namun, file index.astro (halaman utama) tetap memegang kendali untuk mengambil data (misalnya via API atau Markdown lokal) dan melakukan looping (perulangan) menggunakan .map().

Berikut adalah perubahan cara penulisan di index.astro:

Sebelum Menggunakan Card (Semua menumpuk di index.astro):

Cuplikan kode
 
---
// src/pages/index.astro
// Contoh data postingan (bisa dari API Shopify, Sanity, atau Markdown)
const allPosts = [
  { title: "Mengenal Astro JS", url: "/blog/mengenal-astro" },
  { title: "Teori Dasar Listrik", url: "/blog/dasar-listrik" }
];
---
<html>
  <body>
    <h1>Blog Saya</h1>
    
    {allPosts.map((post) => (
      <div class="post-Lama">
        <h2>{post.title}</h2>
        <a href={post.url}>Baca Selengkapnya</a>
      </div>
    ))}
  </body>
</html>

Sesudah Menggunakan Card (Lebih bersih dan rapi):

Cuplikan kode
 
---
// src/pages/index.astro
// 1. Import komponen Card yang sudah kita buat tadi
import Card from '../components/Card.astro';

const allPosts = [
  { title: "Mengenal Astro JS", url: "/blog/mengenal-astro" },
  { title: "Teori Dasar Listrik", url: "/blog/dasar-listrik" }
];
---
<html>
  <body>
    <h1>Blog Saya</h1>
    
    {allPosts.map((post) => (
      <Card title={post.title} url={post.url} />
    ))}
  </body>
</html>

Analogi Sederhananya:

  • index.astro adalah Manajer Gudang: Dia yang tahu daftar semua barang (data postingan), lalu membagikan tugas ke anak buahnya menggunakan perintah .map().

  • Card.astro adalah Anak Buah: Dia tidak tahu ada berapa banyak total postingan di gudang. Tugas dia hanya menerima satu paket data (title dan url) dari Manajer, lalu membungkusnya ke dalam kotak HTML yang rapi sesuai instruksi.

Dengan cara ini, jika di kemudian hari Anda ingin mengubah tampilan kotak postingan (misalnya menambah gambar atau mengubah warna teks), Anda hanya perlu mengubah file Card.astro saja, tanpa perlu mengotak-atik file halaman utama Anda.

Promo Aplikasi Tanpa Web Regarcomm

Level Up Bisnismu dengan Aplikasi Web dari Regarcomm Regarcomm Development Solusi Aplikasi Web Digital Saatnya bisnis naik level Level Up Bisnismu dengan Aplikasi Web Keren dari Regarcomm! Bosan sama sistem manual yang ribet? 🤯 Mau bisnis makin cuan dan efisien? Regarcomm Development hadir buat nyulap bisnismu jadi GO DIGITAL! ✨ ✨ Lihat Fitur 💬 Konsultasi

Read More »

Promo Aplikasi Regarcomm Development

Level Up Bisnismu dengan Aplikasi Web dari Regarcomm 🔥 Level Up Bisnismu Pakai Aplikasi Web Keren dari Regarcomm! 🔥 Bosan sama sistem manual yang ribet? 🤯 Mau bisnis makin cuan dan efisien? Tenang, Regarcomm Development hadir buat nyulap bisnismu jadi GO DIGITAL! ✨ Kehebatan Produk Kami 🏃‍♂️💨 Absensi Anti Ribet: Lupakan absen manual yang bikin

Read More »

Promo Bank Sampah

Aplikasi Bank Sampah Modern | Regarcomm Development Regarcomm Development Lihat Harga 🌱 Google Apps Script Edition Aplikasi Bank Sampah Modern Solusi manajemen praktis untuk Bank Sampah. Tanpa biaya server bulanan, otomatis cetak struk dan kirim bukti transaksi melalui WhatsApp. 📲 Konsultasi via WhatsApp Lihat Fitur Dashboard Bank Sampah Sistem manajemen transaksi NasabahAktif StatusOnline ♻️ Setoran

Read More »

Aplikasi Web Tanpa Hosting & Domain

Regarcomm Development beri solusi praktis: membangun aplikasi web tanpa perlu membeli hosting atau domain dengan memanfaatkan Google Sheets + Google Apps Script. Pendekatan ini cocok untuk prototipe cepat, aplikasi internal, dashboard, atau form interaktif yang butuh backend sederhana dan penyimpanan data. Kenapa memakai Google Sheets + Apps Script? Tanpa biaya hosting/domain: data tersimpan di Google

Read More »

Landing Page Regarcomm Development

Regarcomm Development – Jasa Pembuatan Website Profesional 💬 REGARCOMM DEVELOPMENT 💬 Hubungi WA Jasa Pembuatan Website Profesional Ingin punya website keren untuk kebutuhan pribadi atau bisnis? Kami siap membantu Anda membangun website yang modern, cepat, aman, dan sesuai kebutuhan! 🚀 💬 Konsultasi Gratis 🌐 Kunjungi Website Kami Layanan Website Kami Profil Diri Halaman identitas pribadi

Read More »