Lewati ke konten utama

Partial Reloads

Saat mengunjungi halaman yang sama lagi, Anda tidak selalu perlu mengambil ulang semua data dari server. Fitur "partial reload" Inertia membantu mengoptimalkan performa dengan hanya mengambil data yang diperlukan.

Hanya props tertentu

Gunakan opsi only untuk menentukan data mana yang akan dikembalikan:

Vue:

router.visit(url, { only: ['users'] })

React:

router.visit(url, { only: ['users'] })

Svelte:

router.visit(url, { only: ['users'] })

Kecualikan props tertentu

Gunakan opsi except untuk menentukan data mana yang akan dikecualikan:

Vue:

router.visit(url, { except: ['users'] })

React:

router.visit(url, { except: ['users'] })

Svelte:

router.visit(url, { except: ['users'] })

Router shorthand

Gunakan router.reload() untuk kunjungan halaman yang sama:

Vue:

router.reload({ only: ['users'] })

React:

router.reload({ only: ['users'] })

Svelte:

router.reload({ only: ['users'] })

Partial reload bekerja dengan Inertia links menggunakan properti only:

Vue:

<Link href="/users?active=true" :only="['users']">Show active</Link>

React:

<Link href="/users?active=true" only={['users']}>Show active</Link>

Svelte:

<a href="/users?active=true" use:inertia={{ only: ['users'] }}>Show active</a>

Lazy data evaluation

Bungkus data opsional dalam closures untuk performa yang lebih baik:

return Inertia::render('Users/Index', [
'users' => fn () => User::all(),
'companies' => fn () => Company::all(),
]);

Gunakan Inertia::optional() untuk hanya menyertakan saat diminta:

return Inertia::render('Users/Index', [
'users' => Inertia::optional(fn () => User::all()),
]);

Gunakan Inertia::always() untuk selalu menyertakan:

return Inertia::render('Users/Index', [
'users' => Inertia::always(User::all()),
]);