# Роутинг и защита страниц авторизацией
## Роутинг
Установим `react-router-dom`:
```bash filename="Terminal"
pnpm i react-router-dom
```
Создадим файл `src/router.tsx`:
```tsx filename="src/router.tsx"
import { createBrowserRouter, RouterProvider } from 'react-router-dom'
const router = createBrowserRouter([
{
path: '/',
element:
hello
,
},
])
export const Router = () => {
return
}
```
Отрендерим его в `App`:
```tsx filename="src/App.tsx"
import { Router } from '@/router'
export function App() {
return
}
```
## Защита страниц авторизацией
Разделим наши роуты на две переменные - `publicRoutes` и `privateRoutes`:
```tsx filename="src/router.tsx"
import { createBrowserRouter, RouteObject, RouterProvider } from 'react-router-dom'
const publicRoutes: RouteObject[] = [
{
path: '/login',
element: login
,
},
]
const privateRoutes: RouteObject[] = [
{
path: '/',
element: hello
,
},
]
const router = createBrowserRouter([...privateRoutes, ...publicRoutes])
```
Создадим компонент `PrivateRoutes`:
```tsx filename="src/router.tsx"
function PrivateRoutes() {
const isAuthenticated = false
return isAuthenticated ? :
}
```
И обернем им наши privateRoutes:
```tsx filename="src/router.tsx"
const router = createBrowserRouter([
{
element: ,
children: privateRoutes,
},
...publicRoutes,
])
```
Теперь когда `isAuthenticated` будет `false`,
при переходе на `/` мы будем перенаправлены на `/login`.