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

# Routing

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

## Đị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](/v2/the-basics/responses) từ các route đó.

## Route rút gọn

Nếu có một [trang](/v2/the-basics/pages) 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()`.

```php theme={null}
Route::inertia('/about', 'About');
```

## 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_url` và `create_url` vào component `Users/Index`.

```php theme={null}
class UsersController extends Controller
{
    public function index()
    {
        return Inertia::render('Users/Index', [
            'users' => User::all()->map(fn ($user) => [
                'id' => $user->id,
                'name' => $user->name,
                'email' => $user->email,
                'edit_url' => route('users.edit', $user),
            ]),
            'create_url' => route('users.create'),
        ]);
    }
}
```

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](https://github.com/laravel/wayfinder), bạn có thể truyền trực tiếp method TypeScript được tạo vào [component Link](/v2/the-basics/links#wayfinder), [form helper](/v2/the-basics/forms#wayfinder) hoặc [router method](/v2/the-basics/manual-visits#wayfinder), 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](https://laravel.com/docs/starter-kits) của Laravel, Wayfinder đã được cấu hình sẵn.

### Ziggy

Thư viện [Ziggy](https://github.com/tighten/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.

```vue theme={null}
<Link :href="route('users.create')">Create User</Link>
```

Khi bật [server-side rendering](/v2/advanced/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.

```js theme={null}
.use(ZiggyVue, {
    ...page.props.ziggy,
    location: new URL(page.props.ziggy.location),
});
```

## Tùy chỉnh URL của trang

[Page object](/v2/core-concepts/the-protocol#the-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`.

```php theme={null}
class HandleInertiaRequests extends Middleware
{
    public function urlResolver()
    {
        return function (Request $request) {
            // Return the URL for the request...
        };
    }
}
```

Ngoài ra, bạn có thể định nghĩa resolver bằng phương thức `Inertia::resolveUrlUsing()`.

```php theme={null}
Inertia::resolveUrlUsing(function (Request $request) {
    // Return the URL for the request...
});
```

***

## 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/the-basics/routing). 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.
