Руководства

Что такое Next.js? Простое руководство для создателей приложений

Next.js — фреймворк для создания сайтов и веб-приложений на React. React даёт строительные блоки интерфейса: кнопки, формы, списки. Next.js добавляет вокруг них остальную часть сайта: страницы и адреса, рендеринг страниц на сервере, чтобы они приходили уже готовыми к чтению, загрузку данных и запуск серверного кода в том же проекте. Это открытое программное обеспечение, созданное компанией Vercel, и один из самых распространённых способов создавать сайты на React.

Почему Next.js важен при создании приложений с ИИ

Когда вы описываете приложение конструктору с ИИ, ему нужно выбрать техническую основу. Этот выбор влияет на то, что вам важно потом:

  • Видимость в поиске. Публичный сайт, который должен попадать в выдачу Google, выигрывает от отправки настоящего HTML, а Next.js с этим хорошо справляется.
  • Где живёт бэкенд. Next.js позволяет держать страницы фронтенда и серверный код (например, «сохранить эту форму» или «вызвать платёжный API») в одном проекте.
  • Хостинг. Приложению на Next.js с серверными функциями нужен сервер для работы, а простое приложение на Vite можно раздавать как статические файлы.

Mythex по умолчанию создаёт новые проекты на Vite + React + TypeScript + Tailwind и использует Next.js, если вы его попросите: достаточно написать «Используй Next.js» в первом запросе (как выбирается технология). Поэтому полезно знать, когда стоит это просить.

Бытовая аналогия

Если React — коробка качественных кубиков Lego, то Next.js — это набор Lego, в который уже входят инструкция, основание и детали для дверей и водопровода.

Вы могли бы построить тот же дом из отдельных кубиков — только сами решали бы, как соединяются комнаты, где входная дверь и как проведена вода. Next.js принимает эти решения за вас стандартным способом, поэтому каждый проект на Next.js устроен похоже, и новому разработчику (или ИИ) легко в нём разобраться.

Что Next.js добавляет к React

ВозможностьЧто это значит для вас
Маршрутизация по файламКаждая страница — это файл. Файл app/pricing/page.tsx становится страницей /pricing. Никакой дополнительной настройки.
Серверный рендерингСтраницы могут собираться в HTML на сервере для каждого запроса, поэтому появляются быстро, и поисковики их читают.
Статическая генерацияСтраницы, которые редко меняются, собираются заранее и отдаются очень быстро.
Серверные компоненты (Server Components)Части страницы могут работать только на сервере — читать базу данных напрямую — и отправлять в браузер готовый HTML, а не код.
Обработчики маршрутов и серверные действияСерверный код, например эндпоинт API или обработчик формы, живёт в том же проекте, что и страницы.
Встроенные оптимизацииИзменение размера изображений, загрузка шрифтов и разбиение кода выполняются автоматически.

У Next.js два способа организации страниц. App Router (папка app/) — более новый и поддерживает серверные компоненты. Pages Router (папка pages/) — исходный, он по-прежнему поддерживается. В новых проектах обычно используют App Router. Если код вашего ИИ-конструктора или туториал выглядит непонятно, часто причина именно в этом.

Пример: публичный каталог местных кофеен

Представьте сайт со списком кофеен вашего города, где у каждой есть своя страница и который должен попадать в результаты поиска.

Страница Next.js для одной кофейни может выглядеть примерно так:

// app/cafes/[slug]/page.tsx  →  /cafes/blue-door, /cafes/hilltop ...
export default async function CafePage({ params }) {
  const { slug } = await params;
  const cafe = await db.cafe.findUnique({ where: { slug } });
  return (
    <main>
      <h1>{cafe.name}</h1>
      <p>{cafe.address}</p>
    </main>
  );
}

Что происходит, когда кто-то (или Google) открывает /cafes/blue-door:

  1. Next.js сопоставляет адрес с файлом. Папка [slug] означает «любая кофейня».
  2. Компонент работает на сервере, читает кофейню из базы данных и собирает HTML.
  3. Браузер получает полностью готовую страницу с названием и адресом кофейни — без ожидания, пока JavaScript загрузит данные.

Если бы это было обычное клиентское React-приложение, браузер сначала получил бы почти пустую страницу, потом скачал бы JavaScript, затем запросил бы кофейню и только после этого показал её. Поисковики часто справляются и с этим, но полностью готовая страница надёжнее. См. SEO для сайтов, созданных с ИИ.

Сравните с панелью для сотрудников за входом: поисковики всё равно её не увидят, поэтому серверный рендеринг даёт меньше пользы, и более простое приложение на Vite часто подходит лучше.

Ключевые термины

ТерминЗначение
ФреймворкСтруктура с соглашениями, которая определяет, как организовано приложение. Next.js — фреймворк; React — библиотека.
SSR (серверный рендеринг)Сборка HTML страницы на сервере при каждом визите.
SSG (статическая генерация)Сборка страниц в HTML заранее, при развёртывании.
CSR (клиентский рендеринг)Браузер собирает страницу с помощью JavaScript после загрузки. Так обычно работает приложение Vite + React.
SPA (одностраничное приложение)Приложение, которое загружается один раз и меняет экраны в браузере без полной перезагрузки страницы.
Гидратация (hydration)Браузер «оживляет» HTML от сервера, чтобы кнопки и формы стали интерактивными.
Маршрут (route)Путь в адресе, например /pricing, и код, который на него отвечает.

Частые заблуждения

  • «Next.js заменяет React». Нет. Он использует React. Ваши компоненты по-прежнему компоненты React.
  • «Next.js всегда лучший выбор». Он мощнее, но его и сложнее понять. Серверный рендеринг, кеширование и разница между серверным и клиентским кодом — частые источники запутанных ошибок. Для приложения, которое в основном за входом, обычное React-приложение часто проще.
  • «Next.js работает только на Vercel». Он открытый и может работать на любом сервере Node.js или в контейнере Docker. Полный статический экспорт возможен, если не использовать серверные функции.
  • «Next.js гарантирует хороший SEO». Он делает страницы удобнее для чтения поисковиками. Позиции по-прежнему зависят от заголовков, содержимого, скорости и ссылок.
  • «Серверный код в Next.js автоматически приватный». Код, помеченный для клиента, попадает в браузер. Секреты должны оставаться в коде только для сервера и в переменных окружения.

Что попросить у конструктора ИИ

  • «Используй Next.js с App Router» — в первом запросе, если это нужно.
  • «Какие страницы рендерятся на сервере, какие статические, а какие работают в браузере — и почему?»
  • «Сделай публичные маркетинговые страницы и страницы списков серверными или статическими, с нормальными заголовками и описаниями.»
  • «Храни API-ключи в коде только для сервера и в переменных окружения. Покажи, где читается каждый из них.»
  • «Нужен ли этому приложению Next.js, или для того, что мы строим, проще подойдёт Vite + React?»

Next.js в Mythex

Mythex по умолчанию использует Vite + React + TypeScript + Tailwind, а переходит на Next.js, когда вы попросите об этом в запросе; если назвать его сразу, это экономит кредиты по сравнению с переделкой позже. Приложение вы видите в живом предпросмотре (Preview), а Publish публикует его по живому адресу без настройки хостинга самостоятельно. В документации Mythex отмечено, что клиентские одностраничные приложения хуже подходят для SEO, чем страницы с серверным рендерингом или статические HTML, поэтому, если для маркетингового сайта важен поиск, стоит сказать об этом заранее (SEO для вашего приложения).

Вопросы

Что такое Next.js простыми словами?

Next.js — фреймворк, построенный поверх React. React создаёт компоненты интерфейса; Next.js добавляет остальную часть сайта вокруг них — страницы и адреса, рендеринг на сервере, загрузку данных и серверный код — чтобы вы могли создать полноценное веб-приложение в одном проекте.

В чём разница между React и Next.js?

React — библиотека для создания компонентов интерфейса. Next.js — фреймворк, который использует React и добавляет маршрутизацию, серверный рендеринг, статические страницы и серверный код. Каждое приложение на Next.js — это приложение на React, но не каждое приложение на React использует Next.js.

Next.js лучше для SEO?

Может быть. Next.js может отдавать поисковикам и посетителям полностью готовый HTML с сервера или из заранее собранных статических страниц, тогда как обычное клиентское React-приложение отдаёт почти пустую страницу, которую затем заполняет JavaScript. Хорошие заголовки, описания и содержимое всё равно важнее фреймворка.

Нужен ли Vercel, чтобы использовать Next.js?

Нет. Next.js — открытое программное обеспечение, созданное Vercel, но он может работать на любом сервере с Node.js, в контейнере Docker или как статический экспорт для сайтов, которым не нужны серверные функции. Некоторые возможности проще настроить на Vercel.

Что выбрать для приложения: Next.js или Vite?

Для приложения с входом, например панели управления или внутреннего инструмента, проще и удобнее работает Vite + React. Next.js стоит использовать, когда нужно, чтобы поисковики легко читали контент, есть много публичных страниц или нужны страницы с серверным рендерингом в том же проекте, что и серверный код.

Mythex · Pricing · Создавайте что угодно с ИИ · Шаблоны сайтов и приложений · Сравнения Mythex · Глоссарий по созданию приложений с ИИ · Бесплатные инструменты для создания приложений с ИИ · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)