1. Введение в Next.js 15: Установка, структура проекта и основы App Router
Введение в Next.js 15: Установка, структура проекта и основы App Router
Добро пожаловать в курс Next.js 15: Полное руководство по современной веб-разработке. Это первая статья, с которой начнется ваше погружение в один из самых популярных и мощных фреймворков для React.
Next.js прошел долгий путь от простого инструмента для серверного рендеринга до полноценного фулстек-решения. Версия 15 закрепляет успех архитектуры App Router, улучшает производительность с помощью Turbopack и вводит новые стабильные API для работы с данными. В этой статье мы разберем, как создать проект, что находится внутри папок и как работает маршрутизация.
Что такое Next.js и зачем он нужен?
React — это библиотека для создания пользовательских интерфейсов. Однако сам по себе React не решает множество задач, необходимых для создания полноценного веб-приложения: маршрутизация, оптимизация изображений, SEO, серверный рендеринг (SSR) и генерация статики (SSG).
Next.js — это мета-фреймворк поверх React, который предоставляет все эти инструменты «из коробки». В версии 15 основной упор сделан на React Server Components (RSC). Это парадигма, позволяющая рендерить компоненты на сервере, отправляя клиенту только необходимый HTML и минимальное количество JavaScript.
Установка и создание проекта
Для начала работы вам потребуется установленный Node.js. Next.js 15 требует Node.js версии 18.17.0 или выше.
Чтобы создать новый проект, откройте терминал и выполните следующую команду:
Здесь my-next-app — это название вашей папки с проектом. В процессе установки CLI (интерфейс командной строки) задаст вам несколько вопросов. Рекомендуется выбирать следующие настройки для современного стека:
src/ directory? — Yes. (Помогает отделить исходный код от конфигурационных файлов).@ вполне удобен).После завершения установки перейдите в папку проекта и запустите сервер разработки:
Теперь откройте браузер по адресу http://localhost:3000. Вы увидите стартовую страницу Next.js.
Структура проекта
Давайте разберем, что именно создала команда create-next-app. Понимание структуры — ключ к комфортной разработке.
!Схематичное изображение файловой структуры типичного проекта на Next.js 15.
Основные файлы и папки
* package.json: Список зависимостей и скриптов. Здесь вы увидите next, react, react-dom.
* next.config.js (или .ts): Конфигурационный файл Next.js. Здесь настраиваются редиректы, переменные окружения, настройки изображений и многое другое.
* public/: Папка для статических файлов (картинки, шрифты, robots.txt), которые должны быть доступны напрямую через URL (например, http://localhost:3000/logo.png).
* src/: Папка с исходным кодом (если вы выбрали эту опцию при установке).
Папка app (App Router)
Внутри src/ находится папка app. Это сердце вашего приложения. В Next.js 15 используется файловая маршрутизация. Это означает, что структура папок внутри app напрямую определяет URL-адреса вашего сайта.
Внутри app вы найдете два критически важных файла:
layout.tsx: Корневой макет. Он оборачивает все страницы вашего приложения. Здесь обычно находятся теги <html> и <body>. Если вы хотите добавить навигационную панель (Navbar) или подвал (Footer), которые будут видны на всех страницах, их нужно добавить именно сюда.page.tsx: Главная страница вашего сайта (Home Page). То, что рендерится внутри этого файла, будет доступно по адресу /.Основы App Router и Маршрутизация
Система App Router построена на концепции вложенных маршрутов и специальных файлов. Давайте рассмотрим, как создавать новые страницы.
Создание маршрутов
Чтобы создать новый маршрут (страницу), нужно создать новую папку внутри app и поместить в неё файл page.tsx.
Пример:
Мы хотим создать страницу «О нас» по адресу http://localhost:3000/about.
about внутри src/app.about создайте файл page.tsx.Теперь, если вы перейдете по адресу /about, Next.js автоматически отобразит этот компонент.
> Важно: Компонент должен быть экспортирован по умолчанию (export default). Название функции может быть любым, но принято называть его осмысленно, например AboutPage.
Вложенные маршруты
Вы можете создавать вложенные структуры любой глубины.
* Путь к файлу: src/app/blog/first-post/page.tsx
* URL: /blog/first-post
Если в папке нет файла page.tsx, то этот путь не будет доступен как страница (это может быть полезно для группировки компонентов).
!Иллюстрация того, как вложенность папок трансформируется в URL-адрес.
Специальные файлы
Next.js резервирует определенные имена файлов для специальных целей:
* page.tsx: Уникальный UI маршрута (сама страница).
* layout.tsx: Общий UI для сегмента и его потомков (обертка).
* loading.tsx: UI загрузки (показывается, пока грузится содержимое страницы).
* not-found.tsx: UI для ошибки 404.
* error.tsx: UI для обработки ошибок.
Навигация между страницами
В традиционном HTML для ссылок используется тег <a>. В Next.js для переходов между внутренними страницами следует использовать компонент <Link> из пакета next/link.
Почему не <a>? Тег <a> вызывает полную перезагрузку страницы (Hard Refresh). Компонент <Link> делает переход «мягким» (Client-side navigation): JavaScript подменяет контент, сохраняя состояние приложения, что работает намного быстрее и выглядит плавнее.
Пример использования в src/app/page.tsx:
Серверные компоненты по умолчанию
Одной из ключевых особенностей Next.js 15 (App Router) является то, что все компоненты по умолчанию являются серверными (Server Components).
Это означает:
Если вам нужно использовать интерактивность (например, useState, useEffect или обработчики событий onClick), вы должны явно пометить компонент директивой 'use client' в самой первой строке файла.
Пример клиентского компонента:
Заключение
Мы успешно установили Next.js 15, разобрали структуру проекта и научились создавать простые маршруты. App Router предлагает интуитивно понятную файловую систему для маршрутизации, где папки определяют URL, а файлы page.tsx — контент.
В следующей статье мы углубимся в работу с макетами (layout.tsx), научимся оптимизировать шрифты и изображения, а также разберем работу с метаданными для SEO.