Phía máy chủ
Để defer một prop, bạn có thể dùng methodInertia::defer() khi trả response. Method nhận callback trả dữ liệu prop. Callback sẽ được thực thi trong một request riêng sau lần render trang ban đầu.
Nhóm request
Mặc định, toàn bộ deferred prop được fetch trong một request sau khi page ban đầu render. Tuy nhiên, bạn có thể fetch prop song song bằng cách nhóm chúng.teams, projects và tasks được fetch trong một request, còn prop permissions được fetch song song trong request riêng. Tên group là chuỗi tùy ý và có thể đặt theo ý bạn.
Phía client
Ở phía client, Inertia cung cấp componentDeferred để quản lý deferred props. Component tự động chờ các deferred prop được chỉ định có sẵn trước khi render children.
Nhiều deferred prop
Nếu cần chờ nhiều deferred prop cùng có sẵn, bạn có thể truyền một array vào propdata.
Chỉ báo đang reload
Khi deferred prop đang được reload qua partial reload, componentDeferred cung cấp boolean reloading qua slot. Điều này cho phép hiển thị loading indicator trong khi vẫn giữ dữ liệu đã tải trước đó.
reloading là false ở lần tải đầu và chuyển thành true khi partial reload đang chạy cho các deferred key. Nó trở lại false khi reload hoàn tất.
Xử lý lỗi
Mặc định, exception ném ra trong lúc resolve deferred prop sẽ tạo error response. Bạn có thể yêu cầu Inertia rescue các exception này bằng cách truyềnrescue: true vào Inertia::defer().
rescue cho component Deferred để render fallback UI khi prop tải thất bại.
rescue nhận boolean reloading, cho phép disable nút retry hoặc hiển thị loading indicator trong khi reload đang diễn ra.
Kết hợp với Once Props
Bạn có thể nối modifieronce() vào deferred prop để đảm bảo dữ liệu chỉ được resolve một lần và được phía client ghi nhớ qua các lần điều hướng tiếp theo.