Panduan Upgrade untuk v2.0
Anda dapat menemukan dokumentasi warisan untuk Inertia.js v1.0 di v1.inertiajs.com.
Apa yang Baru
Inertia.js v2.0 adalah langkah maju besar untuk Inertia! Inti library telah ditulis ulang secara arsitektural untuk mendukung permintaan asynchronous, memungkinkan serangkaian fitur baru, termasuk:
Selain itu, untuk proyek sensitif keamanan, Inertia sekarang menawarkan history encryption API, memungkinkan Anda menghapus data halaman dari status riwayat saat keluar dari aplikasi.
Pembaruan Dependencies
Untuk memutakhirkan ke Inertia.js v2.0, gunakan npm terlebih dahulu untuk menginstal adapter sisi client pilihan Anda:
- Vue
- React
- Svelte
npm install @inertiajs/vue3@^2.0
npm install @inertiajs/react@^2.0
npm install @inertiajs/svelte@^2.0
Selanjutnya, perbarui paket inertiajs/inertia-laravel untuk menggunakan branch dev 2.x:
composer require inertiajs/inertia-laravel:^2.0
Breaking Changes
Meskipun rilis yang signifikan, Inertia.js v2.0 tidak memperkenalkan banyak breaking changes. Berikut adalah daftar semua breaking changes:
Dihentikannya dukungan Laravel 8 dan 9
Adapter Laravel sekarang memerlukan Laravel 10 dan PHP 8.1 sebagai minimum.
Dihentikannya dukungan Vue 2
Adapter Vue 2 telah dihapus. Vue 2 mencapai End of Life pada 3 Desember 2023, jadi ini terasa sudah waktunya.
Metode replace Router
Metode router.replace yang sebelumnya deprecated telah diaktifkan kembali, tetapi fungsinya berubah. Sekarang digunakan untuk membuat page visits Client Side. Untuk membuat server-side visits yang mengganti entri riwayat saat ini di browser, gunakan opsi replace:
- Vue
- React
- Svelte
router.get('/users', { search: 'John' }, { replace: true })
router.get('/users', { search: 'John' }, { replace: true })
router.get('/users', { search: 'John' }, { replace: true })
Adapter Svelte
- Dihentikannya dukungan Svelte 3 karena mencapai End of Life pada 20 Juni 2023.
- Helper
remembertelah diganti namanya menjadiuseRememberuntuk konsistensi dengan helper lainnya. - Callback
setupdiperbarui diapp.js. Anda perlu melewatkanpropssaat menginisialisasi komponenApp. Lihat setup di app.js - Callback
setupsekarang diperlukan dissr.js. Lihat setup di ssr.js
Partial reloads sekarang asynchronous
Sebelumnya partial reloads di Inertia bersifat synchronous, seperti semua permintaan Inertia. Di v2.0, partial reloads sekarang bersifat asynchronous. Umumnya ini diinginkan, tetapi jika Anda bergantung pada permintaan yang bersifat synchronous, Anda mungkin perlu menyesuaikan kode Anda.