Розробка фронтенда сайту на React
React — бібліотека для побудови користувацького інтерфейсу через декларативні компоненти. Сайт на React — це SPA або SSR-додаток з маршрутизацією, станом, типізацією, оптимізацією збірки та CI/CD. Тут немає «Hello World» — тільки production-архітектура для проекту, якому предстоїть рости.
Стек та вибір фреймворку
Чистий Vite + React — для SPA без SEO-вимог (панелі керування, портали):
React 18+ + Vite 5 + TypeScript + React Router v6 + Tanstack Query + Zustand
Next.js App Router — для сайтів з SEO, змішаним контентом, ISR:
Next.js 15 + TypeScript + React Server Components + Tanstack Query (client) + Zustand (client)
Remix — для форм, мутацій, fullstack без API-шару:
Remix 2 + TypeScript + Prisma + Zod
Цей матеріал — про Vite + React SPA, Next.js — в окремому розділі.
Ініціалізація та структура проекту
npm create vite@latest my-site -- --template react-ts
cd my-site
npm install
Розширити базову встановлення:
# Маршрутизація
npm install react-router-dom
# Серверне estado
npm install @tanstack/react-query @tanstack/react-query-devtools
# Глобальне estado
npm install zustand
# Форми + валідація
npm install react-hook-form zod @hookform/resolvers
# UI
npm install @radix-ui/react-dialog @radix-ui/react-dropdown-menu @radix-ui/react-tooltip
# Утиліти
npm install clsx tailwind-merge class-variance-authority
# Стилі
npm install -D tailwindcss @tailwindcss/vite @tailwindcss/typography
# Іконки
npm install lucide-react
# Dev
npm install -D @types/node eslint @typescript-eslint/eslint-plugin prettier
Структура каталогів
src/
app/ ← Ініціалізація додатку
App.tsx
Router.tsx
QueryProvider.tsx
assets/ ← Статика (зображення, шрифти)
components/
ui/ ← Примітиви (Button, Input, Card, Dialog)
layout/ ← Header, Footer, Sidebar, Section
shared/ ← Переиспользовані складені компоненти
features/ ← Feature-слайси (слаба зв'язність)
home/
components/
hooks/
index.ts
about/
contact/
hooks/ ← Глобальні хуки
lib/ ← Утиліти, конфігурації
utils.ts ← cn() та інше
api.ts ← Axios/Fetch конфігурація
queryClient.ts
pages/ ← Сторінки (використовують features)
HomePage.tsx
AboutPage.tsx
ContactPage.tsx
NotFoundPage.tsx
store/ ← Zustand stores
styles/
globals.css
types/ ← Глобальні TypeScript типи
Терміни
Початкова настройка з Vite, маршрутизацією, запитами, TypeScript та Tailwind — 2–3 години. Побудова лендінг-сторінки з 5–7 секціями — 3–5 днів. Панель керування з 10+ сторінками та складним станом — 2–3 тижні.







