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

1. Хук useState

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

2. Используйте Крюк Эффекта

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

3. Использование контекстного хука

Хук useContext позволяет вам обмениваться данными между компонентами без необходимости передавать их через свойства. Думайте об этом как о способе поделиться игрушками с друзьями, не раздавая их. С помощью хука useContext вы можете получить доступ к данным из компонента «поставщика» из любого места вашего приложения.

4. Используйте редукционный крюк

Хук useReducer позволяет вам управлять более сложным состоянием вашего приложения. Думайте об этом как о способе обработки нескольких фрагментов информации одновременно, как об игре, в которой есть несколько уровней и очков. С помощью хука useReducer вы можете создать функцию «редуктор», которая выполняет действие и обновляет состояние вашего компонента.

5. Используйте хук обратного вызова

Хук useCallback позволяет вам «запоминать» функцию, что означает, что она будет воссоздана только при изменении ее зависимостей. Думайте об этом как о способе убедиться, что ваши игрушки не ломаются, когда вы слишком много играете с ними. С помощью хука useCallback вы можете создать функцию, которая не будет воссоздаваться каждый раз при рендеринге вашего компонента.

6. Используйте крючок для заметок

Хук useMemo позволяет вам «запоминать» значение, что означает, что оно будет вычисляться только при изменении его зависимостей. Думайте об этом как о способе сэкономить время, решая математическую задачу только один раз, а не каждый раз, когда вам нужен ответ. С помощью хука useMemo вы можете создать значение, которое не будет вычисляться каждый раз при рендеринге вашего компонента.

7. Хук useRef

Хук useRef позволяет вам создать ссылку на элемент DOM или другое значение. Думайте об этом как о способе вспомнить, куда вы положили свои игрушки, чтобы вы могли найти их позже. С помощью хука useRef вы можете создать ссылку на что-то и получить к ней доступ позже.

8. Хук useLayoutEffect

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

9. Крюк useImperativeHandle

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

10. Хук useDebugValue

Хук useDebugValue позволяет отображать пользовательские метки для пользовательских хуков в React DevTools. Думайте об этом как о способе пометить свои ящики для игрушек, чтобы вы знали, в каких из них какие игрушки. С помощью хука useDebugValue вы можете создать собственную метку для пользовательского хука, чтобы упростить отладку.