Skip to main content
Đây là tài liệu Inertia.js v1, phiên bản không còn được duy trì tích cực. Vui lòng tham khảo tài liệu v3.
Inertia cung cấp một hệ thống sự kiện cho phép bạn “hook” vào nhiều sự kiện khác nhau trong lifecycle của thư viện.

Đăng ký listener

Để đăng ký event listener, dùng phương thức router.on().
Bên dưới, Inertia sử dụng event nguyên bản của trình duyệt nên bạn cũng có thể tương tác với sự kiện Inertia bằng các phương thức event thông thường mà bạn đã quen dùng — chỉ cần nhớ thêm tiền tố inertia: vào tên sự kiện.

Gỡ listener

Khi bạn đăng ký event listener, Inertia tự động trả về một callback có thể gọi để gỡ listener đó.
Kết hợp với hook, bạn có thể tự động gỡ event listener khi component unmount.
Ngoài ra, nếu đang dùng event nguyên bản của trình duyệt, bạn có thể gỡ listener bằng removeEventListener().

Hủy sự kiện

Một số sự kiện như before, invaliderror hỗ trợ việc hủy, cho phép bạn ngăn hành vi mặc định của Inertia. Tương tự event nguyên bản, event sẽ bị hủy nếu chỉ một event listener gọi event.preventDefault().
Để thuận tiện, nếu đăng ký event listener bằng router.on(), bạn có thể hủy event bằng cách trả về false từ listener.
Lưu ý, trình duyệt không cho phép hủy event nguyên bản popstate, vì vậy không thể ngăn các lần điều hướng tiến và lùi trong lịch sử khi sử dụng Inertia.js.

Before

Sự kiện before đượ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.
Mục đích chính của sự kiện này là cho phép bạn ngăn một visit diễn ra.

Start

Sự kiện start đượ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.
Sự kiện start không thể bị hủy.

Progress

Sự kiện progress được phát khi tiến trình tăng lên trong quá trình tải file.
Sự kiện progress không thể bị hủy.

Success

Sự kiện success được phát khi page visit thành công, trừ khi có lỗi validation. Tuy nhiên, điều này không bao gồm các visit trong lịch sử trình duyệt.
Sự kiện success không thể bị hủy.

Error

Sự kiện error được phát khi có lỗi validation trong các page visit “thành công”.
Sự kiện error không thể bị hủy.

Invalid

Sự kiện invalid được phát khi máy chủ trả về response không phải Inertia, chẳng hạn response HTML hoặc JSON thông thường. Một response Inertia hợp lệ là response có header X-Inertia được đặt thành true cùng payload json chứa page object. Sự kiện này được phát với mọi loại response, bao gồm các mã response 200, 400500.
Bạn có thể hủy sự kiện invalid để ngăn Inertia hiển thị modal chứa response không phải Inertia.

Exception

Sự kiện exception được phát khi xảy ra lỗi XHR ngoài dự kiến như gián đoạn mạng. Ngoài ra, sự kiện này cũng được phát với các lỗi xảy ra trong quá trình resolve page component.
Bạn có thể hủy sự kiện exception để ngăn lỗi bị ném ra.
Sự kiện này không được phát với request XHR nhận response mức 400 hoặc 500, cũng không áp dụng cho response không phải Inertia, vì Inertia xử lý các tình huống này theo cơ chế khác. Hãy xem tài liệu xử lý lỗi để biết thêm thông tin.

Finish

Sự kiện finish đượ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.
Sự kiện finish không thể bị hủy. Sự kiện navigate đượ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.
Sự kiện navigate không thể bị hủy.

Callback sự kiện

Ngoài các sự kiện toàn cục được mô tả trong trang này, Inertia còn cung cấp một số event callback được kích hoạt khi bạn chủ động thực hiện Inertia visit.

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 v1 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.