Đăng ký listener
Để đăng ký event listener, dùng phương thứcrouter.on().
inertia: vào event name.
Gỡ listener
Khi bạn đăng ký event listener, Inertia tự động trả về một callback có thể gọi để gỡ listener đó.removeEventListener().
Listener chỉ chạy một lần
Bạn có thể đăng ký listener chỉ chạy một lần bằng phương thứcrouter.once(). Listener tự động bị xóa sau lần gọi đầu tiên.
router.on(), phương thức này trả callback mà bạn có thể gọi để xóa listener trước khi nó chạy.
Hủy event
Một số event nhưbefore, networkError, httpException và location hỗ trợ hủy, cho phép ngăn hành vi mặc định của Inertia. Giống native event, event sẽ bị hủy nếu chỉ cần một listener gọi event.preventDefault().
router.on(), bạn có thể hủy event bằng cách trả về false từ listener.
popstate, vì vậy không thể ngăn history visit forward/back bằng Inertia.
Before
Sự kiệnbefore được phát ngay trước khi một request chuẩn bị được gửi đến máy chủ. Điều này hữu ích để chặn visit.
Start
Sự kiệnstart được phát khi request đến máy chủ đã bắt đầu. Sự kiện này hữu ích để hiển thị loading indicator.
start không thể bị hủy.
Progress
Sự kiệnprogress được phát khi tiến trình tăng lên trong quá trình tải file.
progress không thể bị hủy.
Success
Eventsuccess chạy khi page visit thành công, trừ khi có validation error. Tuy nhiên, điều này không bao gồm history visit.
success không thể bị hủy.
Flash
Eventflash chạy khi nhận flash data từ server. Điều này hữu ích để hiển thị toast hoặc xử lý dữ liệu tạm thời tại một vị trí tập trung.
flash không thể bị hủy và được phát trên mọi response có chứa flash data.
Error
Sự kiệnerror được phát khi có lỗi validation trong các page visit “thành công”.
error không thể bị hủy.
HTTP Exception
EventhttpException chạy khi nhận response không phải Inertia từ server, chẳng hạn HTML hoặc JSON response. Inertia response hợp lệ có header X-Inertia đặt thành true và JSON payload chứa page object.
Event này chạy cho mọi loại response, bao gồm code 200, 400 và 500.
httpException để ngăn Inertia hiển thị modal response không phải Inertia.
Network Error
EventnetworkError chạy khi xảy ra XHR error ngoài dự kiến như mất kết nối mạng. Ngoài ra event cũng chạy với error phát sinh khi resolve page component.
networkError để ngăn exception bị ném.
400 và 500 hoặc response không phải Inertia, vì các tình huống đó được Inertia xử lý theo cách khác. Xem tài liệu xử lý lỗi để biết thêm.
Finish
Sự kiệnfinish được phát sau khi một request XHR hoàn tất, áp dụng cho cả response “thành công” lẫn “không thành công”. Sự kiện này hữu ích để ẩn loading indicator.
finish không thể bị hủy.
Navigate
Sự kiệnnavigate được phát khi page visit thành công, cũng như khi điều hướng qua lịch sử trình duyệt.
navigate không thể bị hủy.
Location
v3.6.0+ Eventlocation chạy mỗi khi Inertia chuẩn bị ép full-page navigation, do asset version thay đổi hoặc server trả redirect Inertia::location(). Event detail chứa boolean versionChange để phân biệt automatic asset version change với manual redirect.
location để tự tiếp quản navigation, ví dụ hiển thị banner “có phiên bản mới” thay vì reload.
Prefetch
Eventprefetching được kích hoạt khi router bắt đầu prefetch một trang.
prefetching không thể hủy.
Prefetched
Eventprefetched được kích hoạt khi router đã prefetch một trang thành công.
prefetched không thể hủy.