Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › Laravel

Apa Itu Laravel Volt dan Bagaimana Cara Kerjanya?

By Freedom251 Team · · 4 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Laravel Volt adalah API untuk Livewire yang memungkinkan logika PHP dan template Blade sebuah komponen ditulis dalam satu file. Volt mengubah definisi satu-file itu menjadi komponen Livewire, sehingga komponen tetap dapat memakai kemampuan Livewire tanpa Anda harus membuat kelas komponen bernama secara terpisah. Volt menyediakan gaya fungsional maupun berbasis kelas; pilihan di antaranya terutama soal cara tim ingin menulis dan mengatur kode.

Bagaimana Laravel Volt bekerja?

Dalam pola fungsional Volt, file berekstensi .blade.php memuat bagian PHP dan markup Blade. Fungsi seperti state() mendefinisikan state komponen, sedangkan closure bernama dapat menjadi aksi. Template memanggil aksi itu dengan sintaks Livewire, misalnya wire:click. Volt mengikat closure ke komponen, sehingga logikanya dapat mengakses komponen melalui $this. Di balik layar, Volt mengompilasi API tersebut menjadi komponen Livewire berbasis kelas dan menghubungkannya dengan template dalam file yang sama. Dokumentasi Volt 3.x menjelaskan pola ini.

As an Amazon Associate I earn from qualifying purchases.

Volt juga menerima pola berbasis kelas: file satu-komponen dapat berisi kelas anonim yang memperluas LivewireVoltComponent, diikuti template Blade. Jadi, satu-file tidak berarti Anda harus menggunakan API fungsional. Kedua pola memungkinkan PHP dan Blade untuk sebuah komponen tetap berdekatan.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Apa bedanya Volt dengan komponen Livewire biasa?

Pembedaan utamanya adalah bentuk dan lokasi kode, bukan kemampuan antarmuka yang terpisah. Dalam pola komponen Livewire konvensional, kelas PHP dan tampilan Blade biasanya berada di file terpisah. Volt memungkinkan keduanya didefinisikan bersama, dengan API fungsional atau kelas anonim. Kode tetap menggunakan model komponen dan interaksi Livewire; Volt bukan sistem UI tersendiri.

Pilihan Logika dan template Gaya penulisan Catatan versi
Komponen Livewire konvensional Umumnya berada di file kelas PHP dan tampilan Blade yang terpisah. Kelas komponen bernama. Pola komponen Livewire.
Volt fungsional Logika PHP dan template berada dalam satu file .blade.php. API seperti state() dan closure bernama untuk aksi. Dokumentasi Volt yang dirujuk di sini adalah untuk Livewire 3.x.
Volt berbasis kelas Kelas anonim dan template berada dalam satu file. Kelas anonim yang memperluas LivewireVoltComponent. Panduan peningkatan Livewire 4.x menyatakan sintaks ini bekerja sebagai komponen satu-file bawaan setelah peningkatan.
Komponen satu-file bawaan Livewire 4.x Logika dan template dapat ditulis dalam satu file. Sintaks komponen satu-file bawaan Livewire. Livewire 4.x menyediakan jalur migrasi dari Volt; periksa panduan versi proyek sebelum mengubah dependensi.

Dokumentasi tidak memberikan tolok ukur perbandingan performa antara pendekatan-pendekatan ini. Pilih pola berdasarkan versi Livewire, struktur proyek, gaya tim, dan kebutuhan migrasi, bukan asumsi bahwa satu pola selalu lebih cepat.

Konsep Volt yang penting dipahami

State dan parameter komponen

state() mendefinisikan properti yang tersedia bagi logika komponen dan template. Hook mount() dapat menerima parameter komponen; dokumentasi Volt menyebut parameter lain yang dibutuhkan hook dapat diselesaikan melalui service container Laravel.

Nilai awal yang bergantung pada data atau layanan

Jika nilai awal memerlukan query basis data, model, atau layanan, gunakan closure agar resolusinya ditunda sampai diperlukan. Dokumentasi Volt juga menyarankan pendekatan serupa untuk model yang diberikan melalui route model binding Folio. Ini membantu menghindari menjalankan pekerjaan eksternal hanya untuk mendefinisikan nilai awal.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Kontrol properti

  • locked() dimaksudkan untuk mencegah state tertentu diubah dari sisi klien.
  • reactive() mengatur pembaruan properti dari komponen induk ke komponen anak.
  • modelable() mendukung state yang dibagikan melalui wire:model.

Fitur-fitur tersebut memiliki tujuan spesifik. Mendefinisikan state biasa saja tidak otomatis memberi perlindungan menyeluruh terhadap perubahan dari klien.

Computed properties dan cache

Gunakan computed() untuk nilai turunan atau nilai yang sebaiknya diambil secara malas. Volt menyatakan hasil computed dimemoisasi selama siklus hidup request Livewire, sehingga akses berikutnya dalam siklus tersebut dapat menggunakan hasil yang sama. persist() dapat menyimpan hasil ke cache aplikasi dan menerima durasi dalam detik. Dokumentasi computed properties Livewire 4.x juga menjelaskan nilai turunan yang dimemoisasi untuk akses selanjutnya selama request; memoization per request tidak sama dengan menyimpan hasil secara persisten di cache.

Fitur Livewire yang dapat digunakan

Dokumentasi Volt mencakup route halaman penuh, layout dan judul, listener, validasi, upload berkas, query URL, pagination, serta pengujian. Ini memperlihatkan bahwa Volt adalah cara lain menulis komponen Livewire, bukan lapisan UI dengan rangkaian fitur yang terpisah.

Cara memasang dan membuat komponen Volt pada Livewire 3.x

Langkah berikut mengikuti dokumentasi Volt untuk Livewire 3.x. Jangan menganggapnya sebagai keharusan instalasi untuk semua proyek Livewire 4.x, yang menyediakan komponen satu-file bawaan.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Pasang paket Volt melalui Composer: composer require livewire/volt.
  2. Jalankan php artisan volt:install untuk memasang service provider Volt.
  3. Tempatkan komponen berekstensi .blade.php di direktori yang dipindai provider. Direktori default yang disebut dokumentasi adalah resources/views/livewire dan resources/views/pages; provider dapat disesuaikan untuk direktori lain.
  4. Untuk membuat komponen, jalankan php artisan make:volt counter. Dokumentasi juga menunjukkan opsi generator --test, --pest, dan --class.

Pastikan instruksi instalasi dan generator cocok dengan versi Livewire serta struktur aplikasi Anda sebelum menerapkannya.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Apakah Volt masih dipakai di Livewire 4?

Livewire 4.x mendukung komponen satu-file secara bawaan dengan sintaks yang sama seperti komponen Volt berbasis kelas. Panduan peningkatannya mencantumkan perubahan seperti mengganti LivewireVoltComponent dengan LivewireComponent, Volt::route() dengan Route::livewire(), dan Volt::test() dengan Livewire::test(). Panduan itu juga mengarahkan pengembang untuk menghapus provider Volt dan paket livewire/volt setelah migrasi. Komponen Volt berbasis kelas disebut dapat bekerja tanpa perubahan setelah peningkatan karena sintaksnya sama dengan komponen satu-file Livewire 4.x. Rujuk panduan peningkatan Livewire 4.x untuk urutan dan cakupan perubahan.

Volt tetap relevan saat memahami pola fungsional dan saat mengelola proyek yang sudah menggunakannya. Untuk proyek Livewire 4.x, komponen satu-file bawaan merupakan alternatif yang dapat dipertimbangkan. Tidak ada satu rekomendasi migrasi yang berlaku untuk semua aplikasi: keputusan bergantung pada versi, dependensi, dan sintaks yang digunakan proyek.

Bagaimana menguji komponen Volt?

Untuk pola Volt 3.x, dokumentasi menunjukkan Volt::test('counter') bersama assertion API pengujian Livewire untuk memeriksa hasil render dan aksi. Dokumentasi pengujian Livewire 4.x merekomendasikan Pest dan memakai API versi tersebut. Karena panduan peningkatan juga mengganti Volt::test() dengan Livewire::test(), gunakan helper yang sesuai dengan versi proyek dan jangan mencampur pola pengujian 3.x dan 4.x tanpa memeriksa kompatibilitasnya. Lihat dokumentasi Volt 3.x, panduan peningkatan Livewire 4.x, dan dokumentasi pengujian Livewire 4.x.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

LaravelLaravel VoltLivewirePengembangan WebPHP

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.