В 2026 году AI-ассистенты (ChatGPT, Claude, Copilot) стали неотъемлемой частью рабочего процесса фронтенд-разработчика. Правильный промпт позволяет за секунды получить каркас компонента, страницу Next.js с серверным рендерингом или кастомный хук. Эта подборка содержит 12 проверенных промтов, которые я сам использую в проектах. Каждый промт сопровождается описанием задачи, готовым текстом для AI и примером сгенерированного кода. Промты ориентированы на TypeScript, React 19 и Next.js 15 (App Router) — актуальные версии на июль 2026.
Важно: Все примеры кода основаны на официальной документации React и Next.js. Перед использованием адаптируйте промты под свои требования.
1. Базовый функциональный компонент с TypeScript
Задача: Создать переиспользуемый компонент с типизированными пропсами, который отображает карточку пользователя.
Промт:
Напиши React-компонент UserCard на TypeScript. Компонент принимает пропсы: name (string), email (string), avatarUrl (string, опционально). Компонент рендерит карточку с аватаром (если передан), именем и email. Используй семантическую вёрстку. Включи export default.
Пример результата:
interface UserCardProps {
name: string;
email: string;
avatarUrl?: string;
}
const UserCard: React.FC<UserCardProps> = ({ name, email, avatarUrl }) => {
return (
<article className="user-card">
{avatarUrl && <img src={avatarUrl} alt={name} className="avatar" />}
<h2>{name}</h2>
<p>{email}</p>
</article>
);
};
export default UserCard;
2. Страница Next.js App Router с метаданными
Задача: Сгенерировать страницу профиля пользователя с динамическим роутингом и экспортом метаданных для SEO.
Промт:
Создай файл страницы Next.js App Router для маршрута /profile/[id]. Компонент страницы должен быть асинхронным, получать параметр id через props.params. Добавь генерацию метаданных через функцию generateMetadata. На странице выведи заголовок "Профиль пользователя {id}".
Пример результата:
import { Metadata } from 'next';
type Props = { params: { id: string } };
export async function generateMetadata({ params }: Props): Promise<Metadata> {
return { title: `Профиль пользователя ${params.id}` };
}
export default async function ProfilePage({ params }: Props) {
return <h1>Профиль пользователя {params.id}</h1>;
}
3. Кастомный хук useFetch с кешированием
Задача: Универсальный хук для запросов к API с поддержкой сигнала отмены и простого кеширования.
Промт:
Напиши React-хук useFetch на TypeScript. Он принимает url (string) и опциональные опции fetch. Возвращает { data, loading, error }. Используй useEffect с AbortController для отмены запроса при размонтировании. Добавь in-memory кеш по ключу url.
Пример кода (фрагмент):
const cache = new Map<string, any>();
export function useFetch<T>(url: string, options?: RequestInit) {
const [data, setData] = useState<T | null>(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState<Error | null>(null);
useEffect(() => {
if (cache.has(url)) {
setData(cache.get(url));
setLoading(false);
return;
}
const controller = new AbortController();
fetch(url, { ...options, signal: controller.signal })
.then(res => res.json())
.then(result => { cache.set(url, result); setData(result); })
.catch(err => { if (err.name !== 'AbortError') setError(err); })
.finally(() => setLoading(false));
return () => controller.abort();
}, [url]);
return { data, loading, error };
}
4. Форма с валидацией (React Hook Form)
Задача: Форма регистрации с полями email, password, confirmPassword и валидацией на стороне клиента.
Промт:
Создай компонент формы регистрации с использованием React Hook Form. Поля: email (required, email), password (required, minLength 8), confirmPassword (required, must match password). Выводи сообщения об ошибках под каждым полем. При успешной отправке выведи alert с данными формы.
Пример: AI сгенерирует код с useForm, register, errors. Адаптируйте под свою UI-библиотеку.
5. Таблица с сортировкой и фильтрацией
Задача: Компонент data-table, который принимает массив объектов и отображает их в таблице с возможностью сортировки по столбцам и текстового фильтра.
Промт:
Напиши React-компонент DataTable на TypeScript. Он принимает generic-параметр T extends object, columns (массив объектов с key, label, sortable?) и rows (массив T). Реализуй сортировку при клике на заголовок (по возрастанию/убыванию) и текстовый фильтр сверху. Используй useState для состояния.
6. Серверный компонент Next.js для списка постов
Задача: Асинхронный серверный компонент, который получает данные с внешнего API и рендерит список постов.
Промт:
Создай серверный компонент PostList в Next.js App Router. Он делает fetch к https://jsonplaceholder.typicode.com/posts и рендерит список ссылок на каждый пост (заголовок, ссылка /posts/[id]). Компонент должен быть экспортирован по умолчанию. Используй Suspense для ленивой загрузки.
7. Компонент с Tailwind CSS
Задача: Реализовать Hero-секцию с заголовком, описанием и кнопкой, используя Tailwind CSS.
Промт:
Напиши React-компонент HeroSection с пропсами title, description, ctaText, ctaLink. Используй Tailwind CSS для стилизации: центрирование, градиентный фон, анимация при наведении. Код должен быть чистым и адаптивным.
8. React Context Provider
Задача: Создать контекст темы (светлая/тёмная) с провайдером и кастомным хуком для доступа.
Промт:
Создай ThemeContext с типом 'light' | 'dark', провайдер ThemeProvider (использует useState и localStorage для сохранения темы), и кастомный хук useTheme, который выбрасывает ошибку, если используется вне провайдера.
9. Модальное окно с Portal
Задача: Компонент Modal, который рендерится в портале (ReactDOM.createPortal) и закрывается по нажатию Escape или клику на оверлей.
Промт:
Напиши React-компонент Modal с пропсами isOpen, onClose, children. Используй createPortal для рендера в элемент с id='modal-root'. Добавь обработчик клавиши Escape и клик по backdrop для закрытия. Анимацию появления/исчезания можно опустить.
10. Оптимизированное изображение в Next.js
Задача: Компонент, использующий next/image с правильной конфигурацией remotePatterns и placeholder blur.
Промт:
Создай компонент OptimizedImage на Next.js, который принимает src (string), alt (string), width, height и className. Используй next/image, добавь remotePatterns в next.config для внешних доменов (если нужно). Используй placeholder='blur' и blurDataURL.
11. Тест для компонента (Jest + Testing Library)
Задача: Написать unit-тест для UserCard (из первого промта).
Промт:
Напиши тест с Jest и React Testing Library для компонента UserCard. Проверь: рендер имени, email, условие отображения аватара. Используй describe/it. Импортируй @testing-library/react.
12. Скелетон загрузки
Задача: Компонент-заглушку для имитации загрузки списка карточек.
Промт:
Создай SkeletonCard — компонент, который рендерит серые блоки с анимацией пульсации (CSS-анимация). Принимает пропс count (количество карточек). Используй Tailwind CSS animate-pulse.
Заключение
Приведённые промты покрывают 90% типовых задач фронтенд-разработчика на React/Next.js. Главное правило: чем точнее вы описываете входные данные, структуру и требования, тем качественнее результат. Рекомендую всегда уточнять версии библиотек и стиль кода (например, «используй функциональные компоненты, React 19, TypeScript strict mode»). Сохраняйте эту шпаргалку и адаптируйте под свои проекты. Удачи в кодинге!
Комментарии