React
May 1, 2023

Знакомство с React.js

Вот наконец-то мы и добрались до серьезных разговоров. React.js - популярнейшая библиотека для разработки веб-приложений. В последнее время стало каноном использовать React для всего, что хочет в интернет: от сайтов-визиток до полноценной экосистемы с множеством виджетов и микроприложений. С этой статьи мы начнем длинный (я надеюсь, бесконечный) цикл статей про React.js, в котором ты сможешь с нуля познакомиться с данной библиотекой, а в будущем - следить за новыми фишками и подходами в мире React.js.

Подготовка

Я не буду начинать с рассказа про React, как, зачем и где его применять - это всё можно найти в первых двух ссылках в выдаче Google. Мы будем действовать максимально прямолинейно - создадим приложение, разберёмся, что к чему, и будем писать много-много кода.

Сама статья предполагает, что ты уже знаком с Javascript, умеешь верстать с помощью HTML/CSS и готов погружаться в мир серьезной веб-разработки.

Что нам нужно для начала:

  • Установленный Node.js (среда выполнения JavaScript-кода, можно скачать тут)
  • Редактор кода (рекомендую Visual Studio Code - клик)
  • Эта статья и час свободного времени

Если всё это есть на твоём компьютере - мы можем начинать!

Создание приложения

Для начала, убедимся, что у тебя всё готово для работы. Откроем VS Code, внутри, в терминале введем команду

node -v

Если нет никакой ошибки, а в консоли ты видишь номер версии Node.js - то проверяем так же и npm (менеджер пакетов):

npm -v

Аналогично - если видем циферки, значит всё круто, можем создавать наше приложение.

Для создания приложения воспользуемся известным бойлерплейтом (стартовым шаблоном) create-react-app. Этот шаблон позволяет быстро и без лишних настроек перейти непосредственно к написанию приложения. Итак, находясь в нашей папке (которую ты предварительно создал для своего первого проекта), в терминале мы пишем следующую команду:

npx create-react-app first-app

Вкратце о команде:

  • npx - утилита для запуска npm-пакетов
  • create-react-app - пакет, реализующий стартовый шаблон React.js
  • first-app - имя твоего приложения (можешь выбрать любое)

После установки приложения, у тебя появится папка с твоим проектом, примерно следующей структуры:

Чуть ниже по статье мы рассмотрим все файлы и папки, уберем все ненужное и напишем самостоятельно первое приложение, а пока что, давай наконец запустим наш сервер разработки и посмотрим, что получится. Открываем в консоли папку с нашим приложением и пишем:

npm start

Данная команда запускает Node.js сервер, на котором будет разворачиваться твоё приложение. После запуска - заходим на http://localhost:3000 и видим стартовую страницу create-react-app:

Окей, с этим разобрались. Теперь, давай посмотрим, что у нас есть в папке проекта.

Структура папок

node_modules

Самая первая и самая большая папка - это node_modules. На ней мы пока что не будем заострять внимание, скажу лишь, что это системная папка, в которой хранятся все используемые пакеты и модули для работы React-приложения.

public

Далее - папка public. В этой папке у нас лежат ресурсы нашего приложения.

  • favicon.ico - фавиконка для веб-странички
  • index.html - непосредственно, веб-страница, в которую React.js будет рендерить наше приложение.
  • manifest.json - общая конфигурация твоего сайта. Там можно хранить разную информацию об авторе, версии, теме, ресурсах и т.д. Подробнее про манифесты можно прочитать тут, мы не будем сильно заострять на этом внимание (пока что).
  • robots.txt - так же, системный файл, необходимый для корректной индексации твоего сайта роботами.

Также, в этой папке можно нужно хранить статические ресурсы, такие как изображения, видео, документы, которые используются твоим приложением.

src

Это - самая главная и интересная папка. В ней находится точка входа в React-приложение и все его компоненты. Именно в этой папке ты будешь работать большую часть времени. Давай для начала приведём ее в надлежащий вид:

На данном этапе, нам не нужны тесты, веб-воркеры и отдельные CSS-модули. Оставляем только index.js - точка входа в приложение, App.js - главный компонент твоего приложения и index.css - глобальный файл стилей. Так же добавляем две новые папки: components - для хранения наших компонентов, pages - для хранения страниц. К этим папкам мы обязательно вернемся в следующих уроках, на данном этапе они нам не понадобятся.

Hello, World!

Теперь, для того чтобы наше приложение не падало с ошибкой - уберем все лишнее.

index.js:

import React from "react";
import ReactDOM from "react-dom/client";
import App from "./App";

import "./index.css";

const root = ReactDOM.createRoot(document.getElementById("root"));

root.render(  
  <React.StrictMode>    
    <App />  
  </React.StrictMode>
);

App.js:

const App = () => {  
  return <div className="App"></div>;
}

export default App;

index.css пока можно оставить пустым.

Сейчас, если ты откроешь браузер - ты увидишь пустой белый экран. Давай это исправим, и, по классике, напишем "Hello, World!" посередине нашей страницы.

Для этого, в файле App.js нам надо добавить контейнер для нашей фразы и вписать её внутрь:

App.js

const App = () => {  
  return (
    <div className="App">
       <div className="container">Hello, World!</div>
    </div>  
  );
};

export default App;

Обрати внимание, в синтаксисе JSX (расширение синтаксиса JavaScript для работы со стеком HTML/CSS/JavaScript в одном файле) имена классов для элементов обозначаются словом "className".

Так же, в наш пустой index.css добавим стили для контейнера:

* {  
  margin: 0;  
  padding: 0;
}

.container {  
  width: 100vw;  
  height: 100vh;
  
  background: black;
  
  color: #efab2b;  
  font-size: 5rem;
  
  display: flex;  
  align-items: center;  
  justify-content: center;
}

Результат на экране:

Итог

В этой статье мы с тобой развернули сервер разработки и написали наше первое приложение на React.js. Неплохой результат для небольшой статьи.

В следующих статьях мы глубже познакомимся с экосистемой React.js, научимся использовать композицию компонентов для создания удобного и красивого интерфейса и для правильно организации кода, начнём понимать философию React.js и продолжим совершенствовать наше приложение.

Подписывайся на канал, чтобы не пропускать выход новый статей, ставь лайки, зови друзей - давай создавать комьюнити вместе!