React — это библиотека JavaScript, разработанная для создания пользовательских интерфейсов. Она основывается на компонентной архитектуре, что позволяет разбивать интерфейс на независимые и переиспользуемые части, называемые компонентами.

В этой статье мы рассмотрим основные принципы работы с React и его компонентной архитектурой.

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

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

  • Функциональные компоненты — это функции, которые возвращают JSX (JavaScript XML), что позволяет описать, как будет выглядеть интерфейс.
  • Классовые компоненты — это более сложные компоненты, которые позволяют использовать дополнительные функции, такие как состояние (state) и жизненный цикл (lifecycle).

Создание функционального компонента

Функциональный компонент может выглядеть следующим образом:

function MyComponent() {
    return 

Hello, React!

; }

Этот компонент возвращает заголовок <h1> с текстом. Чтобы использовать этот компонент, вы можете импортировать его в другой компонент и включить его в JSX:

import MyComponent from './MyComponent';

function App() {
    return ;
}

Создание классового компонента

Классовый компонент создается с использованием классов в JavaScript:

class MyComponent extends React.Component {
    render() {
        return 

Hello, React from Class!

; } }

Чтобы использовать классовый компонент, процесс аналогичен:

import MyComponent from './MyComponent';

class App extends React.Component {
    render() {
        return ;
    }
}

Состояние и свойства компонентов

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

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

Для работы с состоянием в функциональных компонентах используется хук useState:

import React, { useState } from 'react';

function MyComponent() {
    const [count, setCount] = useState(0);

    return (
        

You clicked {count} times

); }

В данном примере мы создаем состояние count и функцию setCount для его обновления. Каждый раз, когда пользователь нажимает кнопку, состояние обновляется, и компонент перерисовывается.

Использование свойств в компоненте

Свойства передаются компоненту так же, как аргументы функции:

function MyComponent({ message }) {
    return 

{message}

; } function App() { return ; }

Жизненный цикл компонента

Классовые компоненты имеют методы жизненного цикла, которые позволяют выполнять действия на различных этапах существования компонента. Основные методы:

  • componentDidMount — вызывается после того, как компонент был добавлен в DOM.
  • componentDidUpdate — вызывается после обновления компонента.
  • componentWillUnmount — вызывается перед удалением компонента из DOM.

В функциональных компонентах для управления жизненным циклом используются хуки, такие как useEffect.

import React, { useEffect } from 'react';

function MyComponent() {
    useEffect(() => {
        console.log('Component mounted');
        return () => {
            console.log('Component unmounted');
        };
    }, []);

    return 

Hello, useEffect!

; }

Заключение

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