> ## Documentation Index
> Fetch the complete documentation index at: https://inertiajs-vi.tuantq.online/llms.txt
> Use this file to discover all available pages before exploring further.

# Cách Inertia hoạt động

<Warning>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](/v3/getting-started/upgrade-guide) để bắt đầu.</Warning>

## Sử dụng các công cụ bạn yêu thích

Với Inertia, bạn xây dựng ứng dụng theo đúng cách quen thuộc với framework web phía máy chủ mà mình lựa chọn. Bạn tiếp tục sử dụng các chức năng sẵn có của framework cho routing, controller, middleware, xác thực, phân quyền, truy xuất dữ liệu và nhiều tác vụ khác.

Tuy nhiên, Inertia thay thế tầng view của ứng dụng. Thay vì render phía máy chủ bằng các template PHP hoặc Ruby, các view mà ứng dụng trả về là những page component JavaScript. Nhờ đó, bạn có thể xây dựng toàn bộ frontend bằng React, Vue hoặc Svelte, đồng thời vẫn tận hưởng năng suất phát triển của Laravel hoặc framework phía máy chủ mà bạn ưa dùng.

## Chặn request

Như bạn có thể hình dung, chỉ đơn giản xây dựng frontend bằng JavaScript chưa đủ để mang lại trải nghiệm ứng dụng một trang. Nếu bạn nhấp vào một liên kết, trình duyệt vẫn sẽ thực hiện một lần tải toàn bộ trang, khiến framework phía client phải khởi động lại ở lần tải trang tiếp theo. Đây chính là lúc Inertia tạo ra khác biệt.

Về cốt lõi, Inertia về cơ bản là một thư viện routing phía client. Nó cho phép bạn chuyển trang mà không buộc trình duyệt tải lại toàn bộ trang. Điều này được thực hiện thông qua component `<Link>`, một lớp bọc nhẹ quanh liên kết anchor thông thường. Khi bạn nhấp vào một liên kết Inertia, Inertia sẽ chặn sự kiện nhấp và thực hiện lần truy cập qua XHR. Bạn cũng có thể chủ động thực hiện các lần truy cập này bằng JavaScript thông qua `router.visit()`.

Khi Inertia thực hiện một lần truy cập XHR, máy chủ nhận biết đây là request của Inertia và thay vì trả về một response HTML đầy đủ, nó trả về response JSON chứa tên page component JavaScript cùng dữ liệu (props). Sau đó Inertia sẽ thay thế động page component trước đó bằng page component mới và cập nhật history state của trình duyệt.

**Kết quả cuối cùng là trải nghiệm ứng dụng một trang mượt mà.**

Để tìm hiểu sâu hơn về các chi tiết kỹ thuật bên trong cách Inertia hoạt động, hãy xem [trang giao thức](/v2/core-concepts/the-protocol).

***

## 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](https://inertiajs.com/docs/v2/core-concepts/how-it-works). 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.
