Как создать первое приложение на React и запустить его локально

React — это библиотека JavaScript для создания быстрых и интерактивных пользовательских интерфейсов. Изначально разработанная в Facebook, React сейчас — одна из самых популярных библиотек для построения UI.
В этой статье вы научитесь создавать своё первое приложение на React и получите практическое понимание базовой структуры, запуска и сборки проекта.
Что нужно знать заранее
Краткие определения:
- Node.js: среда выполнения JavaScript вне браузера. Полезна для инструментов сборки и запуска dev-сервера.
- npm: менеджер пакетов для Node.js. Используется для установки зависимостей и запуска скриптов.
Требования перед началом:
- Установлены Node.js и npm. Проверить версии можно командами:
node --versionnpm --version- Рекомендуется установить современный текстовый редактор: Visual Studio Code или аналог.
- Базовые знания HTML, CSS, JavaScript (включая ES6) и принципов работы npm.
Если Node.js и npm не установлены, следуйте официальному руководству установки Node.js для вашей ОС.
Быстрое создание шаблона (boilerplate)
Самый простой способ начать — воспользоваться официальным инструментом create-react-app. Он создаёт готовый проект без ручной настройки webpack или Babel.
Откройте терминал, перейдите в директорию, где хотите создать проект, и выполните:
npx create-react-app my-first-react-appПримечания:
- Имя приложения можно заменить, например my-first-react-app → my-app. Не используйте заглавные буквы в имени директории.
- Установка может занять несколько минут в зависимости от скорости сети.
После успешной генерации вы увидите подсказки, похожие на эти:
npm start
Starts the development server.
npm run build
Bundles the app into static files for production.
npm test
Starts the test runner.
npm run eject
Removes this tool and copies build dependencies, configuration files
and scripts into the app directory. If you do this, you can’t go back!
We suggest that you begin by typing:
cd my-first-react-app
npm start
Happy hacking!Перейдите в созданную папку:
cd my-first-react-appОткройте проект в редакторе и изучите структуру — это поможет ориентироваться дальше.
Начальная структура проекта
Внутри папки проекта вы увидите примерно такую структуру:
my-first-react-app
├── README.md
├── node_modules
├── package.json
├── package-lock.json
├── .gitignore
├── public
│ ├── favicon.ico
│ ├── index.html
│ ├── logo192.png
│ ├── logo512.png
│ ├── manifest.json
│ └── robots.txt
└── src
├── App.css
├── App.js
├── App.test.js
├── index.css
├── index.js
├── logo.svg
├── serviceWorker.js
└── setupTests.jsКраткое описание ключевых файлов:
- README.md — основные инструкции по проекту.
- .gitignore — файлы и папки, игнорируемые Git.

- node_modules — все установленные зависимости проекта.
- package.json — метаданные проекта и npm-скрипты.

- package-lock.json — точные версии и дерево зависимостей, зафиксированные npm.
- public — статические файлы, включая index.html (точка входа в веб-приложение).
- src — исходный код приложения, обрабатываемый сборщиком; основная рабочая папка для разработки.
Запуск dev-сервера
Чтобы запустить приложение в режиме разработки, выполните в терминале:
npm startили, если вы используете Yarn:
yarn startПо умолчанию приложение откроется в браузере по адресу http://localhost:3000. Если вкладка не открылась автоматически, откройте этот адрес вручную.

При изменении исходного кода страница обновляется автоматически (hot reload / live reload).
Откройте файл src/App.js — там находится компонент, который отрисовывается на главной странице. Вариант по умолчанию выглядит так:
import logo from './logo.svg';
import './App.css';
function App() {
return (
Edit src/App.js and save to reload.
Learn React
);
}
export default App;Простая модификация: Hello World
Чтобы вывести «Hello World!», измените содержимое src/App.js на следующий код (оставляя импорты, если хотите сохранить логотип и стили):
import logo from './logo.svg';
import './App.css';
function App() {
return (
Hello World!
);
}
export default App;После сохранения изменений браузер автоматически отобразит новый текст.

Поздравляем — ваше первое приложение на React запущено!
Тестирование
По умолчанию в проекте создаётся тест для компонента App в файле src/App.test.js. Пример теста, использующего @testing-library/react:
import { render, screen } from '@testing-library/react';
import App from './App';
test('renders learn react link', () => {
render( );
const linkElement = screen.getByText(/learn react/i);
expect(linkElement).toBeInTheDocument();
});Запустить тесты можно командами:
npm testили
yarn testТестовый раннер запустится в режиме наблюдения и будет перезапускать тесты при изменениях файлов.
Сборка для продакшена и деплой
Для создания оптимизированной сборки выполните:
npm run buildили
yarn buildКоманда создаст директорию build/ с готовыми статическими файлами, которые можно разместить на любом хостинге (Netlify, Vercel, GitHub Pages, S3, nginx и т. п.).
Ключевые моменты при деплое:
- Проверьте переменные окружения (REACTAPP*), если они нужны.
- Настройте корректную обработку путей (особенно при SPA и client-side routing).
Когда Create React App может не подойти
Важно понимать ограничения и ситуации, когда create-react-app (CRA) не лучший выбор:
- Нужна максимально быстрая начальная сборка и минимальный overhead — рассмотрите Vite.
- Требуется серверный рендеринг (SSR) из коробки — используйте Next.js.
- Требуется нестандартная конфигурация webpack/плагинов и вы готовы поддерживать конфиг — можно выполнить npm run eject или настроить кастомный билд.
- Проект ориентирован на микрофронтенды или специфичные сборки под CDN — возможно, лучше собрать кастомную конфигурацию.
Альтернативные подходы и инструменты
- Vite — очень быстрый dev-сервер и сборка, особенно для небольших/средних проектов.
- Next.js — если вам нужен SSR, статическая генерация (SSG) или маршрутизация уровня приложения.
- Remix — для приложений с акцентом на маршрутизацию и работу с данными на сервере.
- Parcel — zero-config сборщик с простотой использования.
Выбор зависит от требований к производительности, SEO, маршрутизации и рабочему процессу команды.
Мини-методология: от идеи до деплоя (5 шагов)
- Инициировать проект: npx create-react-app my-app.
- Версионировать и настроить Git + .gitignore.
- Разделить приложение на компоненты и папки по функциональности (фича-ориентированная структура).
- Настроить тесты и CI (например GitHub Actions) для автоматической проверки.
- Создать production build и развернуть на выбранном провайдере.
Контрольный чеклист разработчика
- Установлены Node.js и npm/yarn
- Проект создан: npx create-react-app
- Приложение запускается локально: npm start
- Базовые юнит-тесты проходят: npm test
- Собрана production-версия: npm run build
- Настроен CI/CD и окружения (dev/staging/prod)
Критерии приёмки
- Локальный dev-сервер запускается и отображает приложение на http://localhost:3000.
- При изменении кода UI автоматически обновляется (hot reload).
- Production-билд успешно собирается в папку build/ без ошибок.
- Критические тесты проходят в CI.
Модель принятия решения (Mermaid)
flowchart TD
A[Нужно быстро начать проект?] -->|Да| B[Create React App]
A -->|Нет| C[Оценить требования]
C --> D{Нужен SSR или SSG?}
D -->|Да| E[Next.js]
D -->|Нет| F{Нужна максимальная скорость dev-сервера?}
F -->|Да| G[Vite]
F -->|Нет| H[CRA или собственная конфигурация]Краткая галерея исключительных случаев
- Если приложение рассчитано на очень старые браузеры, может понадобиться дополнительный полифилл-процесс.
- Если проект использует много нативных модулей Node.js на серверной части, рассмотрите разделение backend/frontend.
1-строчный глоссарий
- Компонент: повторно используемый блок UI в React.
- JSX: синтаксис, похожий на HTML внутри JavaScript, используемый в React.
- Props: входные параметры компонента.
- State: внутреннее состояние компонента.
Риски и смягчения
Риск: неожиданная уязвимость в одной из npm-зависимостей. Смягчение: регулярно обновлять зависимости и проводить аудит (npm audit).
Риск: конфликты при eject. Смягчение: использовать eject только осознанно и документировать изменения.
Рекомендации по следующему шагу
- Изучите базовые хуки React: useState, useEffect, useRef.
- Попробуйте подключить роутер (react-router) и понять client-side routing.
- Освойте управление состоянием (контекст + reducer, затем Redux или Zustand для крупных проектов).
Краткое резюме
- Create React App — быстрый путь создать и запустить React-приложение без ручной настройки сборки.
- Для специфических требований рассмотрите альтернативы: Vite, Next.js, Parcel.
- Обязательно понимайте основы JavaScript — это вложение, которое сэкономит время при работе с любым фреймворком.
Важно: начните с малого проекта, пройдите цикл «разработка → тест → сборка → деплой», и затем расширяйте архитектуру по мере роста требований.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента