Tutorial Astro, React & Laravel #3 : Membuat Layout di Astro


Tutorial Astro, React & Laravel #3 : Membuat Layout di Astro

Halo teman-teman semuanya, pada kesempatan kali ini kita akan belajar membuat layout di dalam Astro. Layout ini merupakan induk template untuk semua view, jadi nanti semua view akan extends ke dalam layout ini.

Langkah 1 - Membuat Layout

Silahkan teman-teman buat folder baru dengan nama layouts di dalam folder src, kemudian di dalamnya buat file baru dengan nama MainLayout.astro, kemudian masukkan kode berikut ini di dalamnya.

<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>ASTRO, REACT & LARAVEL 10</title>
    <link rel="preconnect" href="https://fonts.googleapis.com" />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
    <link
      href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500&family=Quicksand:wght@300;400;500;600&display=swap"
      rel="stylesheet"
    />
    <link
      rel="stylesheet"
      href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css"
    />
    <style>
      body {
        background-color: lightgray;
        font-family: "Quicksand", sans-serif;
      }
    </style>
  </head>
  <body>
    <header>
      <nav
        class="navbar navbar-expand-md navbar-dark fixed-top bg-dark fixed-top border-0 shadow-sm"
      >
        <div class="container">
          <a href="/" class="text-decoration-none">
            <span class="navbar-brand">ASTRO, REACT & LARAVEL</span>
          </a>
          <button
            class="navbar-toggler"
            type="button"
            data-bs-toggle="collapse"
            data-bs-target="#navbarCollapse"
            aria-controls="navbarCollapse"
            aria-expanded="false"
            aria-label="Toggle navigation"
          >
            <span class="navbar-toggler-icon"></span>
          </button>
          <div class="collapse navbar-collapse" id="navbarCollapse">
            <ul class="navbar-nav me-auto mb-2 mb-md-0">
              <li class="nav-item">
                <a class="nav-link" href="/posts">POSTS</a>
              </li>
            </ul>
            <ul class="navbar-nav mb-2 mb-md-0">
              <li class="nav-item">
                <a
                  class="nav-link"
                  href="https://santrikoding.com"
                  target="_blank">SANTRIKODING</a
                >
              </li>
            </ul>
          </div>
        </div>
      </nav>
    </header>

    <!-- your content is injected here -->
    <slot />

    <script
      src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"
    ></script>
  </body>
</html>

Dari penambahan kode di atas, kita membuat halaman menggunakan sintaks dasar dari HTML dan kita juga menggunakan framework CSS Bootstrap agar proses pembuatan UI bisa lebih mudah dan cepat.

Di atas, terdapat kode <slot / >, kode inilah yang nanti me-render setiap view yang menggunakan layout ini.

Langkah 2 - Membuat Halaman Homepage

Setelah berhasil membuat layout, sekarang kita lanjutkan uji coba menampilkan halaman homepage di astro.

Silahkan buka file src/pages/index.astro, kemudian ubah semua kode-nya menjadi seperti berikut ini.

---
//import transitions effect
import { ViewTransitions } from "astro:transitions";

//import layout
import MainLayout from "../layouts/MainLayout.astro";
---

<MainLayout>
  <ViewTransitions />
  <div class="p-5 mb-4 bg-light rounded-3">
    <div class="container-fluid py-5">
      <h1 class="display-5 fw-bold">ASTRO, REACT & LARAVEL</h1>
      <p class="col-md-8 fs-4">
        Belajar CRUD dengan Astro, React dan Laravel di SantriKoding.com
      </p>
    </div>
  </div>
</MainLayout>

Di atas, pertama-tama kita import ViewTransitions dari Astro. Ini akan menjadikan aplikasi kita bisa bekerja secara SPA atau tanpa reload halaman.

//import transitions effect
import { ViewTransitions } from "astro:transitions";

Untuk menggunakan, kita cukup memanggilnya di dalam view.

<ViewTransitions />

Langkah 3 - Uji Coba Menampilkan Homepage

Sekarang silahkan teman-teman jalankan projectnya menggunakan perintah berikut ini di dalam terminal/CMD.

npm run dev

Kemudian silahkan buka di browser dengan mengetikkan http://localhost:4321, jika berhasil maka akan menampilkan halaman seperti berikut ini.

kesimpulan

Pada artikel ini kita telah belajar bagaimana cara membuat layout di Astro dan kita juga belajar menampilkan halaman homepage.

Pada artikel berikutnya, kita semua akan belajar bagaimana cara menampilkan data dari Rest API yang dibuat menggunakan Laravel di dalam Astro dan React.

Terima Kasih



Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami