> ## 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>Đâ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](/v3/getting-started/index).</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 là bạn không cần Vue Router hoặc React Router. Thay vào đó, bạn chỉ cần định nghĩa các route Laravel và trả về [response Inertia](/v1/the-basics/responses) từ các route đó.

## Route rút gọn

Nếu bạn có một [trang](/v1/the-basics/pages) không cần phương thức controller tương ứng, chẳng hạn trang "FAQ" hoặc "giới thiệu", bạn có thể route trực tiếp đến một component thông qua 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(function ($user) {
                return [
                    'id' => $user->id,
                    'name' => $user->name,
                    'email' => $user->email,
                    'edit_url' => route('users.edit', $user),
                ];
            }),
            'create_url' => route('users.create'),
        ]);
    }
}
```

Tuy nhiên, khi dùng Laravel, thư viện [Ziggy](https://github.com/tightenco/ziggy) có thể đưa các named route phía máy chủ sang phía client thông qua hàm `route()` toàn cục. Thực tế, nếu bạn 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, Ziggy đã được cấu hình sẵn.

Nếu dùng Ziggy với Vue, sẽ rất tiện nếu bạn cung cấp hàm này dưới dạng thuộc tính tùy chỉnh `$route` để có thể gọi trực tiếp trong template.

<CodeGroup>
  ```js Vue 2 icon="vuejs" theme={null}
  Vue.prototype.$route = route
  ```

  ```js Vue 3 icon="vuejs" theme={null}
  app.config.globalProperties.$route = route
  ```
</CodeGroup>

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

***

## 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](https://inertiajs.com/docs/v1/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.
