Создание пользовательских хуков может быстро сделать ваше приложение более легким в архитектуре и более понятным в коде для вас и других разработчиков.

Сегодня мы увидим, как создать свой собственный хук для извлечения данных из списка дел с сайта https://jsonplaceholder.typicode.com.

01 | Получить и назначить в компоненте

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

Давайте посмотрим, как улучшить наш код

02 | Создайте собственный хук

Начнем с создания нового файла .js в новой папке с именем hooks.

Этот файл будет называться useTodos.js
(Обратите внимание на соглашение об именах для пользовательских хуков, все они начинаются с use‹something›)

На втором этапе давайте начнем с создания метода выборки данных внутри этого файла:

Затем мы можем создать новую константу, которую назовем как файл: useTodos.

Этот метод будет иметь локальное состояние, которое будет возвращаться в другие компоненты при вызове useTodos.

Теперь мы можем вызвать наш метод fetchTodos в методе useEffect и назначитьданные состоянию todos через setTodos.

Нам просто нужно вернуть состояние todos, и это… ГОТОВО! ✅

Давайте используем его в нашем приложении для получения и отображения данных!

Молодец!
Вам нужно помнить следующее:

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

Исходный код на моем Github:
https://github.com/horhorou/create-first-hook