Первая программа на Next.js
Первая программа на Next.js
Создадим приложение с главной страницей, страницей «О проекте» и API /api/hello.
Обзор: Next.js. База React: Первая программа на React.
Создание проекта
npx create-next-app@latest my-next-app
Рекомендуемые ответы мастера для обучения:
- TypeScript — Yes (можно No, если пока без TS)
- ESLint — Yes
- App Router — Yes
src/directory — по желанию- Tailwind — Yes (удобно для вёрстки)
cd my-next-app
npm run dev
Откройте http://localhost:3000.
Layout и главная страница
app/layout.tsx:
import type { Metadata } from 'next';
export const metadata: Metadata = {
title: 'Моё Next-приложение',
description: 'Первая программа на Next.js',
};
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="ru">
<body style={{ fontFamily: 'system-ui', margin: '2rem' }}>
<header>
<nav>
<a href="/" style={{ marginRight: '1rem' }}>Главная</a>
<a href="/about">О проекте</a>
</nav>
</header>
<main>{children}</main>
</body>
</html>
);
}
app/page.tsx:
export default function HomePage() {
return (
<section>
<h1>Привет, Next.js</h1>
<p>Эта страница — Server Component по умолчанию.</p>
</section>
);
}
Вторая страница
app/about/page.tsx:
export default function AboutPage() {
return (
<section>
<h1>О проекте</h1>
<p>Маршрут создан файлом app/about/page.tsx</p>
</section>
);
}
API Route
app/api/hello/route.ts:
import { NextResponse } from 'next/server';
export async function GET() {
return NextResponse.json({ message: 'Hello from Next API' });
}
Проверка: http://localhost:3000/api/hello.
Client Component с состоянием
Интерактивность — только в клиентском компоненте.
app/counter/page.tsx:
'use client';
import { useState } from 'react';
export default function CounterPage() {
const [count, setCount] = useState(0);
return (
<section>
<h1>Счётчик: {count}</h1>
<button type="button" onClick={() => setCount((c) => c + 1)}>
+1
</button>
</section>
);
}
Директива 'use client' в начале файла обязательна для хуков.
Сборка и production
npm run build
npm start
build генерирует оптимизированный серверный бандл и статику.
Дальше
- Загрузка данных в Server Component:
async function Page() { const data = await fetch(...) }. - Динамические сегменты:
app/blog/[slug]/page.tsx. - Деплой на Vercel или Docker с
node server.js.
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Основы 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 в вебе и за его пределами