Cách dùng cơ bản
Để tạo instant visit, hãy cung cấp têncomponent đích cho Link hoặc router.visit().
Dashboard trong khi server request chạy nền. Toàn bộ prop được merge vào khi response đến.
Target component phải có thể render mà không cần prop riêng của page, vì intermediate page chỉ có shared props. Bạn có thể dùng optional chaining hoặc conditional rendering để xử lý prop bị thiếu.
Instant visit bằng lập trình hoạt động tương tự thông qua tùy chọn component trên router.visit().
Shared props
Laravel adapter đưa key metadatasharedProps vào page response, liệt kê các key prop cấp cao nhất được đăng ký qua Inertia::share().
auth có sẵn ngay, trong khi prop riêng của page như stats sẽ là undefined cho tới khi server phản hồi.
Page props
Bạn có thể cung cấp prop cho intermediate page bằng tùy chọnpageProps. Điều này hữu ích khi truyền dữ liệu đã có ở page hiện tại hoặc đặt placeholder để hiển thị loading state trong lúc chờ server.
pageProps được truyền dưới dạng object, shared props không tự động được mang theo. Bạn toàn quyền kiểm soát prop của intermediate page.
Bạn cũng có thể truyền callback vào pageProps. Callback nhận props của page hiện tại và shared props làm đối số, nhờ đó bạn có thể spread chọn lọc chúng.
Tích hợp Wayfinder
Khi dùng Wayfinder, bạn có thể dùng propinstant trên component Link. Inertia sẽ lấy target component từ định nghĩa route Wayfinder, không cần chỉ định thủ công prop component.
instant cũng có trên component Form.
component được chỉ định rõ luôn ưu tiên hơn instant.
Cấu hình Wayfinder
Để đưa thông tin component vào định nghĩa route Wayfinder, hãy bật tùy chọngenerate.inertia.component trong file cấu hình config/wayfinder.php.
config/wayfinder.php
Component có điều kiện
Controller action có thể render các component khác nhau theo điều kiện, khiến propinstant không thể tự xác định component cần dùng. Bạn có thể gọi phương thức withComponent() trên route function của Wayfinder để chỉ định target component.
Tắt shared prop keys
Bạn có thể tắt key metadatasharedProps trong file cấu hình config/inertia.php. Server vẫn resolve và đưa giá trị shared prop vào response nhưng metadata liệt kê key nào là shared sẽ bị bỏ. Không có danh sách này, client không thể xác định prop nào cần mang sang trong instant visit.
config/inertia.php