Next.js
Next.js
Next.js — фреймворк поверх React: файловая маршрутизация, серверный рендеринг (SSR), статическая генерация (SSG), API Routes и (в App Router) React Server Components.
Пошаговый старт: Первая программа на Next.js. Сервер на Node: Node.js, Первая программа на Node.js.
Зачем Next.js, если есть React
| Задача | «Голый» React + Vite | Next.js |
|---|---|---|
Маршруты /about, /blog/[id] | react-router, настройка | app/ или pages/ из коробки |
| SEO и первый HTML | CSR — пустая страница до JS | SSR/SSG отдают готовый HTML |
| API рядом с UI | Отдельный Express | Route Handlers / API routes |
| Деплой | Статика + отдельный BFF | Vercel, Node, Docker |
Next.js не заменяет изучение React: компоненты, хуки и состояние те же.
App Router vs Pages Router
App Router (app/) | Pages Router (pages/) | |
|---|---|---|
| Статус | Рекомендуемый для новых проектов | Legacy, но поддерживается |
| Файлы | page.tsx, layout.tsx, loading.tsx | pages/index.tsx |
| Серверные компоненты | Да, по умолчанию | Нет (клиентский React) |
| Data fetching | async Server Components, fetch с кэшем | getServerSideProps, getStaticProps |
Новые материалы энциклопедии ориентируются на App Router (Next.js 13+).
Рендеринг
- Server Component — выполняется на сервере, не попадает в бандл клиента (нет
useState/useEffect). - Client Component — директива
'use client'в начале файла. - SSG —
export const dynamic = 'force-static'или генерация на build. - SSR — динамические страницы при каждом запросе.
Структура проекта (App Router)
my-app/
app/
layout.tsx # общий каркас
page.tsx # /
about/
page.tsx # /about
api/
hello/
route.ts # GET /api/hello
public/ # статика
next.config.ts
package.json
Route Handlers (API)
// app/api/notes/route.ts
import { NextResponse } from 'next/server';
export async function GET() {
return NextResponse.json([{ id: 1, text: 'demo' }]);
}
export async function POST(request: Request) {
const body = await request.json();
return NextResponse.json(body, { status: 201 });
}
Экосистема
| Инструмент | Роль |
|---|---|
| Turbopack | Быстрый dev-сборщик (альтернатива Webpack в dev) |
| next/image | Оптимизация изображений |
| next/font | Локальные шрифты без layout shift |
| Middleware | middleware.ts — auth, редиректы, i18n |
Когда не нужен Next.js
- Виджет внутри чужого сайта (достаточно React + Vite).
- Чистое SPA за API без SEO.
- Мобильное приложение — React Native.
Связанные материалы
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Основы JavaScript - стандарт ECMAScript, модель выполнения и базовые конструкции языка. Фундамент для начинающего программиста - что повторить, как работать, чего ожидать. Для создания массивов используется литеральная нотация. Конструктор Array не применяется. Как работать с HTML-элементами, как их создавать, менять. Простые приложения на JavaScript - базовые сценарии, структура кода и быстрый старт с практическими примерами. Расширения файлов определяют способ обработки кода средой выполнения или компилятором. История JavaScript - происхождение языка, ключевые этапы развития и влияние на современный веб. Такое именование представляет собой соглашение между разработчиками. Классический JavaScript не обеспечивает реальной приватности через подчеркивания. JavaScript содержит набор зарезервированных слов, которые имеют специальное значение в языке. Эти слова нельзя использовать в качестве идентификаторов для переменных, функций или классов. Встроенные функции JavaScript - ключевые методы массивов, строк и объектов для повседневной разработки. Этот шаблон описывает подключение внешних функций, классов или значений из других файлов. Он используется в начале файла и определяет зависимости текущего модуля. JavaScript используется для создания кроссплатформенных мобильных приложений, которые работают на iOS и Android с использованием единой кодовой базы.Основы JavaScript
Что требуется знать перед началом изучения языка программирования JavaScript
Рекомендации по разработке на JavaScript
Работа с HTML в JavaScript
Простые приложения на JavaScript
Форматы JavaScript
История языка JavaScript
Синтаксис и пунктуация в JavaScript
Ключевые слова языка JavaScript
Встроенные функции JavaScript
Структура и подключение JavaScript-кода
Применение JavaScript в вебе и за его пределами