React для начинающих: с чего начать?

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Введение в React

React — это популярная библиотека JavaScript, разработанная компанией Facebook для создания пользовательских интерфейсов. Она позволяет разработчикам создавать масштабируемые и быстрые веб-приложения благодаря использованию компонентов и виртуального DOM. Если вы новичок в веб-разработке или хотите расширить свои знания, изучение React — отличный шаг. React широко используется в индустрии, и его знание может значительно повысить ваши шансы на успешную карьеру в веб-разработке.

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

Пройдите тест и узнайте подходит ли вам сфера IT
Пройти тест

Установка и настройка окружения

Перед тем как начать работать с React, необходимо настроить окружение разработки. Для этого вам понадобятся Node.js и npm (Node Package Manager). Node.js позволяет запускать JavaScript на сервере, а npm — это менеджер пакетов, который помогает управлять зависимостями вашего проекта.

Шаг 1: Установка Node.js и npm

Перейдите на официальный сайт Node.js и скачайте последнюю LTS-версию. Установка Node.js автоматически установит и npm. Это важно, потому что npm будет использоваться для установки различных библиотек и инструментов, необходимых для разработки на React.

Шаг 2: Создание нового проекта

Для создания нового проекта React используйте Create React App — удобный инструмент, который автоматически настроит все необходимые зависимости и конфигурации. Create React App позволяет быстро настроить проект без необходимости вручную конфигурировать Webpack, Babel и другие инструменты.

Bash
Скопировать код
npx create-react-app my-first-react-app
cd my-first-react-app
npm start

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

Основы JSX и компоненты

JSX (JavaScript XML) — это синтаксис, который позволяет писать HTML-подобный код внутри JavaScript. Это делает код более читабельным и удобным для работы. JSX позволяет использовать HTML-теги прямо в JavaScript, что упрощает создание пользовательских интерфейсов.

Пример использования JSX

jsx
Скопировать код
const element = <h1>Hello, world!</h1>;

Этот код создает элемент h1 с текстом "Hello, world!". JSX позволяет легко создавать иерархии элементов, что делает код более выразительным и понятным.

Компоненты в React

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

Функциональные компоненты

Функциональные компоненты — это простые функции, которые принимают пропсы и возвращают элементы React.

jsx
Скопировать код
function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

Классовые компоненты

Классовые компоненты — это более сложные компоненты, которые могут иметь состояние и методы жизненного цикла.

jsx
Скопировать код
class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}

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

Состояние и пропсы

Состояние (state) и пропсы (props) — два основных способа управления данными в React. Пропсы используются для передачи данных от родительского компонента к дочернему, а состояние — для управления внутренними данными компонента.

Пропсы

Пропсы используются для передачи данных от родительского компонента к дочернему. Они передаются в компонент как аргументы и доступны через объект props.

jsx
Скопировать код
function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

function App() {
  return <Welcome name="Sara" />;
}

В этом примере компонент Welcome получает проп name и отображает его в элементе h1.

Состояние

Состояние используется для управления внутренними данными компонента. Состояние может изменяться, и каждый раз, когда оно изменяется, компонент перерисовывается.

Использование состояния в классовых компонентах

jsx
Скопировать код
class Clock extends React.Component {
  constructor(props) {
    super(props);
    this.state = { date: new Date() };
  }

  componentDidMount() {
    this.timerID = setInterval(() => this.tick(), 1000);
  }

  componentWillUnmount() {
    clearInterval(this.timerID);
  }

  tick() {
    this.setState({ date: new Date() });
  }

  render() {
    return (
      <div>
        <h1>Hello, world!</h1>
        <h2>It is {this.state.date.toLocaleTimeString()}.</h2>
      </div>
    );
  }
}

Использование состояния в функциональных компонентах с хуками

jsx
Скопировать код
import React, { useState, useEffect } from 'react';

function Clock() {
  const [date, setDate] = useState(new Date());

  useEffect(() => {
    const timerID = setInterval(() => setDate(new Date()), 1000);
    return () => clearInterval(timerID);
  }, []);

  return (
    <div>
      <h1>Hello, world!</h1>
      <h2>It is {date.toLocaleTimeString()}.</h2>
    </div>
  );
}

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

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

Теперь, когда вы знаете основы, давайте создадим простое приложение — список задач (To-Do List). Это приложение поможет вам закрепить полученные знания и понять, как компоненты взаимодействуют друг с другом.

Шаг 1: Создание компонента ToDoItem

Компонент ToDoItem будет представлять отдельный элемент списка задач.

jsx
Скопировать код
function ToDoItem(props) {
  return (
    <li>
      {props.item.text}
    </li>
  );
}

Шаг 2: Создание компонента ToDoList

Компонент ToDoList будет отображать список задач, используя компонент ToDoItem для каждого элемента.

jsx
Скопировать код
function ToDoList(props) {
  return (
    <ul>
      {props.items.map((item, index) => (
        <ToDoItem key={index} item={item} />
      ))}
    </ul>
  );
}

Шаг 3: Создание основного компонента App

Компонент App будет управлять состоянием списка задач и предоставлять интерфейс для добавления новых задач.

jsx
Скопировать код
class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = { items: [], text: '' };
  }

  handleChange = (e) => {
    this.setState({ text: e.target.value });
  }

  handleSubmit = (e) => {
    e.preventDefault();
    if (this.state.text.length === 0) {
      return;
    }
    const newItem = {
      text: this.state.text,
      id: Date.now()
    };
    this.setState(state => ({
      items: state.items.concat(newItem),
      text: ''
    }));
  }

  render() {
    return (
      <div>
        <h3>To-Do List</h3>
        <ToDoList items={this.state.items} />
        <form onSubmit={this.handleSubmit}>
          <input
            onChange={this.handleChange}
            value={this.state.text}
          />
          <button>
            Add #{this.state.items.length + 1}
          </button>
        </form>
      </div>
    );
  }
}

Итог

Поздравляем! Вы создали свое первое React-приложение. Теперь у вас есть базовые знания о React, и вы можете продолжать изучение более сложных концепций и создавать более сложные приложения. 🚀

Изучение React — это увлекательный процесс, который откроет перед вами множество возможностей в мире веб-разработки. Не останавливайтесь на достигнутом, продолжайте изучать новые функции и подходы, и вы станете настоящим мастером в создании пользовательских интерфейсов.