Здесь я буду предельно краток: facebook выкатили удобный инструмент для старта приложения. Поддерживается новый синтаксис, импорты, тестирование, перезагрузка страницы при изменениях, линтер и многое другое.
Во всем разнообразии мы сейчас разбираться не будем. Цель: разбить index.html на компоненты, подключить их, навести порядок.
Скопируйте index.html куда-нибудь на память, скоро мы разобьем его на мелкие удобные компоненты.
Установка и запуск create-react-app
npx create-react-app my-app
cd my-app
npm start
Если вы не знакомы с данными командами, значит вам нужно поставить себе node.js и ввести их в терминале после.
После запуска мы получим следующую картину в браузере:
welcome to react
И следующую файловую структуру:
Восстановим баланс в src
src/App.css (копируем все наши стили)
src/App.js (копируем почти все из тэга script)
Удалите файл src/Logo.svg, остальное не трогайте, но можете посмотреть :)
Create-react-app (CRA) при каждом изменении в файлах внутри директории src - перезагружает страницу в браузере.
prop types problem
У нас нет PropTypes в проекте. Так как раньше это был тэг script, а теперь нам нужен npm-пакет.
Остановите работу create-react-app в терминале и добавьте пакет prop-types
Я не привожу сюда примеров для yarn, так как если у вас yarn вы итак в курсе, как ставить пакеты через него.
Подключите PropTypes в начале файла:
src/App.js
Запустите приложение еще раз:
news cra works
Итого: мы перевели приложение на CRA.
Исходный код на данный момент (добавлен конфиг для преттира - .prettierrc, не обращайте внимание).
+-- node_modules (здесь расположены пакеты для работы приложения)
+-- public (здесь расположены публичные файлы, такие как index.html и favicon)
+-- src (здесь сейчас уже живет компонент App)
+-- .gitignore (файл для гита)
+-- package.json (файл с зависимостями проекта)
+-- README.md (описание проекта)
+-- yarn.lock (может быть, а может и не быть - тоже относится к теме зависимостей проекта)