Skip to main content

Định nghĩa route

Khi dùng Inertia, toàn bộ route của ứng dụng được định nghĩa phía server. Điều này có nghĩa bạn không cần Vue Router hay React Router. Thay vào đó, chỉ cần định nghĩa Laravel route và trả Inertia response từ các route đó.

Route rút gọn

Nếu có page không cần controller method tương ứng, như trang “FAQ” hoặc “giới thiệu”, bạn có thể route trực tiếp tới component bằng phương thức Route::inertia().

Tạo URL

Một số framework phía máy chủ cho phép tạo URL từ named route. Tuy nhiên, bạn sẽ không truy cập được các helper đó ở phía client. Sau đây là một vài cách để vẫn sử dụng named route với Inertia. Lựa chọn đầu tiên là tạo URL ở phía máy chủ và truyền chúng dưới dạng props. Hãy chú ý trong ví dụ này, chúng ta truyền edit_urlcreate_url vào component Users/Index.
Khi dùng Laravel, bạn có một số lựa chọn để cung cấp route phía máy chủ cho code phía client:

Wayfinder

Khi dùng Wayfinder, bạn có thể truyền trực tiếp TypeScript method được sinh vào Link component, form helper hoặc router method, và Inertia biết cách xử lý. Nếu phát triển ứng dụng bằng một trong các starter kit của Laravel thì Wayfinder đã được cấu hình sẵn.

Ziggy

Thư viện Ziggy có thể cung cấp các named route phía máy chủ cho phía client qua hàm route() toàn cục. Nếu dùng Vue plugin đi kèm Ziggy, bạn có thể gọi route() trực tiếp trong template.
Khi bật server-side rendering, bạn có thể truyền options object vào Ziggy plugin trong file ssr.js. Object này nên chứa route definition và location hiện tại.

Tùy chỉnh URL của trang

Page object chứa url đại diện cho URL của page hiện tại. Mặc định Laravel adapter resolve giá trị này bằng phương thức fullUrl() trên instance Request, nhưng loại bỏ scheme và host để kết quả là relative URL. Nếu cần tùy chỉnh cách URL được resolve, bạn có thể cung cấp resolver trong phương thức urlResolver của middleware Inertia HandleInertiaRequests.
Ngoài ra, bạn có thể định nghĩa resolver bằng phương thức Inertia::resolveUrlUsing().

Tài liệu chính thức

Bài dịch này được đối chiếu từ tài liệu Inertia.js v3 chính thức. Nếu có khác biệt do phiên bản hoặc cập nhật mới, hãy ưu tiên tài liệu chính thức làm nguồn tham chiếu.