Next.js произвел революцию в разработке React благодаря своим мощным функциям и интуитивно понятному дизайну. С выпуском Next.js 13 новый App Router занял центральное место, предлагая разработчикам более гибкий и мощный способ структурирования своих приложений. В этом подробном руководстве мы углубимся в App Router, изучим его функции и лучшие практики. Чтобы проиллюстрировать эти концепции, мы будем использовать реальный пример: проект генератора сопроводительных писем.
Маршрутизатор приложений в Next.js 13 представляет собой сдвиг парадигмы в том, как мы подходим к маршрутизации в приложениях React. В отличие от предыдущего Pages Router, App Router использует подход, основанный на файловой системе, который более точно соответствует тому, как мы мысленно моделируем структуру нашего приложения.
Давайте начнем с настройки нового проекта Next.js 13 с помощью App Router. Откройте терминал и запустите:
npx create-next-app@latest my-app cd my-app
При появлении запроса обязательно выберите «Да» для параметра «Хотите ли вы использовать App Router?».
В App Router каждая папка представляет собой сегмент маршрута. Давайте создадим простую структуру для нашего генератора сопроводительных писем:
app/ ├── page.tsx ├── layout.tsx ├── cover-letter/ │ └── page.tsx └── templates/ └── page.tsx
Здесь page.tsx в корневой папке приложения представляет домашнюю страницу. Папки сопроводительного письма и шаблонов создают маршруты для соответствующих страниц.
В приложении/page.tsx:
export default function Home() { returnWelcome to the Cover Letter Generator
; }
В приложении/сопроводительное письмо/page.tsx:
export default function CoverLetter() { returnCreate Your Cover Letter
; }
С помощью этой структуры вы можете перейти к / для домашней страницы и к /cover-letter для страницы создания сопроводительного письма.
Одной из мощных функций App Router является возможность создания вложенных макетов. Давайте добавим общий макет для нашего приложения.
В приложении/layout.tsx:
export default function RootLayout({ children, }: { children: React.ReactNode }) { return ( {children} ); }
Этот макет будет применен ко всем страницам нашего приложения, обеспечивая единообразную структуру навигации.
Динамические маршруты имеют решающее значение для приложений, генерирующих контент на основе параметров. Давайте реализуем динамический маршрут для просмотра конкретных шаблонов сопроводительных писем.
Создайте новый файл: app/templates/[id]/page.tsx:
export default function Template({ params }: { params: { id: string } }) { returnTemplate {params.id}
; }
Теперь при переходе к /templates/1 или /templates/formal этот компонент будет отображаться с соответствующим идентификатором.
В Next.js 13 представлены серверные компоненты React, позволяющие нам получать данные на сервере. Давайте реализуем это в нашем генераторе сопроводительных писем.
В приложении/сопроводительное письмо/page.tsx:
async function getTemplates() { // Simulate API call return [ { id: 1, name: 'Professional' }, { id: 2, name: 'Creative' }, { id: 3, name: 'Academic' }, ]; } export default async function CoverLetter() { const templates = await getTemplates(); return (); }Create Your Cover Letter
{templates.map(template => (
- {template.name}
))}
Этот компонент извлекает данные с сервера, улучшая производительность и SEO.
Для навигации на стороне клиента используйте компонент Link из Next.js. Обновите свое приложение/layout.tsx:
import Link from 'next/link'; export default function RootLayout({ children, }: { children: React.ReactNode }) { return ( {children} ); }
Теперь, когда мы рассмотрели основы, давайте посмотрим, как эти концепции применяются в реальном проекте. Проект Resumate-NextJS на GitHub — отличный пример генератора сопроводительных писем, созданного с помощью Next.js.
Основные выводы из этого проекта:
Структурированная маршрутизация: в проекте используется четкая структура маршрутизации, разделяющая задачи между различными страницами и компонентами.
Рендеринг на стороне сервера: использует возможности Next.js SSR для повышения производительности и SEO.
Маршруты API: реализует маршруты API для логики на стороне сервера, демонстрируя, как обрабатывать отправку форм и обработку данных.
Стилизация: использует Tailwind CSS для создания адаптивного и чистого дизайна пользовательского интерфейса.
Управление состоянием: реализует контекстный API для управления состоянием приложения между компонентами.
По мере того, как вы освоитесь с App Router, изучите эти дополнительные концепции:
Маршрутизатор приложений Next.js 13 представляет собой значительный шаг вперед в разработке приложений React. Предоставляя интуитивно понятную систему маршрутизации на основе файловой системы и используя возможности серверных компонентов React, она позволяет разработчикам создавать производительные, масштабируемые и удобные в обслуживании веб-приложения.
Как показано на примере генератора сопроводительных писем, App Router упрощает процесс создания сложных динамических веб-приложений. Независимо от того, создаете ли вы простой сайт-портфолио или сложное веб-приложение, освоение App Router значительно улучшит ваш опыт разработки Next.js.
Помните, лучший способ учиться — это делать. Клонируйте репозиторий Resumate-NextJS, поэкспериментируйте с кодом и попробуйте реализовать свои собственные функции с помощью App Router. Приятного кодирования!
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3