Tutorial Laravel, Inertia.js & React.js #2 : Installasi & Konfigurasi Inertia.js "server-side"


Tutorial Laravel, Inertia.js & React.js #2 : Installasi & Konfigurasi Inertia.js "server-side"

Halo teman-teman semuanya, pada artikel sebelumnya kita telah belajar bagaimana cara membuat project baru di Laravel beserta melakukan konfigurasi database.

Untuk bisa menggunakan Inertia di dalam Laravel, kita harus melakukan 2 jenis konfigurasi, yaitu :

  1. konfigurasi secara "server-side"
  2. konfigurasi secara "client-side"

Dan pada artikel ini, kita akan melakukan installasi dan konfigurasi Inertia.js secara server side terlebih dahulu.

Langkah 1 - Installasi Inertia Server Side di Laravel

Pertama, kita akan lakukan installasi Inertia.js di dalam Laravel, silahkan teman-teman jalankan perintah berikut ini di dalam terminal/CMD dan pastikan sudah berada di dalam project Laravel-nya.

composer require inertiajs/inertia-laravel:0.6.3

Silahkan tunggu proses installasinya sampai selesai dan pastikan teman-teman terhubung dengan internet.

Langkah 2 - Publish dan Konfigurasi Middleware

Selanjutnya, kita akan melakukan pubish middleware dari Inertia.js dan melakukan konfigurasi agar middleware tersebut bisa diakses secara global di dalam project.

Silahkan jalankan perintah berikut ini di dalam terminal/CMD.

php artisan inertia:middleware

Jika perintah di atas berhasil dijalanakan, maka kita akan mendapatkan 1 file Middleware baru dari Inertia yang berada di dalam folder app/Http/Middleware/handleInertiaRequest.php.

Setelah file Middleware berhasil dibuat, maka sekarang kita akan lanjutkan untuk melakukan register Midlleware tersebut di dalam Kernel. Silahkan buka file app/Http/Kernel.php, kemudian tambahkan kode berikut ini di dalam $middlewareGroups dan di dalam array web.

protected $middlewareGroups = [
    'web' => [

        //...

        \App\Http\Middleware\HandleInertiaRequests::class,
    ],

    'api' => [

        //...

    ]
]

Langkah 3 - Konfigurasi Shared Data

Middleware di Inertia akan bersifat global dan bisa diakses disemua component yang ada di dalam React.js nantinya, oleh sebab itu kita akan manfaatkan untuk menaruh data yang bersifat global, contohnya adalah alert / notifikasi.

Sekarang silahkan buka file app/Http/Middleware/handleInertiaRequest.php, kemudian cari kode berikut ini :

public function share(Request $request): array
{
    return array_merge(parent::share($request), [
        //
    ]);
}

kemudian ubahlah menjadi seperti berikut ini.

public function share(Request $request): array
{
    return array_merge(parent::share($request), [
        //session
        'session' => [
            'success'   => fn () => $request->session()->get('success'),
        ],
    ]);
}

Di atas, kita menambahkan key baru dengan nama session dan di dalamnya terdapat key lagi yang bernama success dan berisi session yang bernama success.

Langkah 4 - Konfigurasi Root Template

Terakhir, kita akan membuat halaman view yang nanti akan digunakan Inertia sebagai root template-nya. Dan pada view ini kita bisa manfaatkan untuk menaruh file-file CSS maupun JavaScript yang kita punya.

Silahkan buat file baru dengan nama app.blade.php di dalam folder resources/views, kemudian masukkan kode berikut ini di dalamnya.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet">
    @viteReactRefresh
    @vite('resources/js/app.jsx')
    @inertiaHead
    <style>
      body {
        background-color: lightgray
      }
    </style>
  </head>
  <body>

      @inertia
      
  </body>
</html>

Di atas, kita memanggil directive @viteReactRefresh, yang fungsinya agar hot reload dijalankan atau kita tidak perlu melakukan refresh halaman secara manual ketika terjadi perubahan.

Kemudian kita panggil file app.jsx menggunakan Vite. File tersebut akan kita buat nanti saat konfigurasi client-side.

@vite('resources/js/app.jsx')

Setelah itu, kita juga memanggil @inertiaHead.

@inertiaHead

Terakhir, kita juga menambahkan directive @inertia yang nanti digunakan untuk me-render setiap component yang menggunakan template ini.

@inertia

Sampai disini pembahasan bagaimana cara melakukan konfigurasi Inertia.js di Laravel secara server side. Pada artikel selanjutnya kita akan belajar melakukan konfigurasi Inertia.js secara client-side.

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