Skip to main content
Bạn đang xem tài liệu Inertia.js v2. Inertia.js v3 đã được phát hành và hiện là phiên bản mặc định. Hãy xem hướng dẫn nâng cấp để bắt đầu.

Định nghĩa route

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

Route rút gọn

Nếu có một trang không cần method controller tương ứng, như trang “FAQ” hoặc “giới thiệu”, bạn có thể route trực tiếp đến 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 method TypeScript được tạo vào component Link, form helper hoặc router method, và Inertia sẽ hiểu cách xử lý. Thực tế, nếu phát triển ứng dụng bằng một trong các starter kit của Laravel, 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 object options vào plugin Ziggy trong file ssr.js. Object này cần bao gồm route definitions và location hiện tại.

Tùy chỉnh URL của trang

Page object chứa url đại diện cho URL hiện tại của trang. Mặc định, adapter Laravel 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à URL tương đối. Nếu cần tùy chỉnh cách resolve URL, bạn có thể cung cấp resolver trong method 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 v2 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.