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

Перехватчики React До появления перехватчиков состоянием можно было управлять только в компонентах класса, используя объект this.state и метод setState. Это затруднило повторное использование логики с отслеживанием состояния в компонентах и ​​усложнило написание функциональных компонентов, которые могли бы получить доступ к состоянию.

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

useState Хук useState позволяет нам добавлять состояние к нашим функциональным компонентам. Вот пример:

import { useState } from 'react';
function Counter() {
  const [count, setCount] = useState(0);
  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>Click me</button>
    </div>
  );
}

В этом примере мы определяем переменную состояния count и функцию setCount, используя хук useState. Мы инициализируем count значением 0, а функция setCount обновляет состояние count всякий раз, когда она вызывается.

useEffect Хук useEffect позволяет нам выполнять побочные эффекты, такие как выборка данных из API или подписка на WebSocket, в наших функциональных компонентах. Вот пример:

import { useState, useEffect } from 'react';
function UserProfile(props) {
  const [user, setUser] = useState(null);
  useEffect(() => {
    fetch(`/api/users/${props.userId}`)
      .then(response => response.json())
      .then(data => setUser(data));
  }, [props.userId]);
  if (!user) {
    return <p>Loading user...</p>;
  }
  return (
    <div>
      <h2>{user.name}</h2>
      <p>Email: {user.email}</p>
    </div>
  );
}

В этом примере мы определяем переменную состояния user и функцию setUser, используя хук useState. Мы также определяем эффект с помощью хука useEffect, который извлекает пользовательские данные из API при изменении значения props.userId. Эффект срабатывает всякий раз, когда изменяется props.userId, потому что он передается как массив зависимостей на хук useEffect.

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