Хуки представлены в React 16.8. Они позволяют подключаться к функциям React, таким как состояние компонента и метод жизненного цикла, которые будут реализованы в функциональном компоненте.
Раньше, когда нам нужно было реализовать в React функциональные возможности, такие как состояние компонентов или события жизненного цикла, мы должны были реализовать компонент класса, но после хуков все они могли быть реализованы в функциональном компоненте без использования класса.
Хуки - это функции, которые позволяют подключаться к функции реагирования, такой как методы состояния и жизненного цикла, в функциональных компонентах.
В этой статье я обсуждаю следующие хуки
- useState
- useEffect
Я также буду сравнивать компонент класса с функциональным компонентом, используя хуки.
useState Hook
Как следует из названия, этот хук можно использовать для выполнения каких-либо действий с состоянием в функциональном компоненте.
Ранее, когда нам нужно было определить состояние в компоненте, мы могли использовать компонент класса следующим образом
Ниже приведен простой компонент устаревшего класса, в котором две переменные состояния определены и изменяются при событии.
Теперь посмотрим, как мы можем воспроизвести вышеуказанный компонент класса в качестве функционального компонента.
Это репликация компонента класса как функционального компонента, поскольку вы видите, что мы используем хуки useState для достижения функциональности обработки состояния в функциональном компоненте. useState возвращает значение пары, сначала это имя переменной, которая должна использоваться в качестве переменной состояния, а во-вторых, это функция для изменения значения этой переменной.
useEffect Hook:
Эффект используется для обработки побочного эффекта, возникающего для любого компонента, например, при установке или обновлении. В компонентах класса это достигается с помощью методов жизненного цикла, а теперь в функциональных компонентах это достигается с помощью перехвата эффектов.
Ниже приведен пример компонента класса, который обновляет заголовок документа, когда компонент монтируется или обновляется.
Воспроизведение этого как функционального компонента
Обратите внимание, что в компоненте класса мы делаем то же самое в методах жизненного цикла монтирования и обновления, которые оба обрабатываются с помощью useEffect Hook.
Следующее, что приходит на ум, - это метод жизненного цикла componentWillUnmount, поэтому давайте рассмотрим пример, когда вы добавляете прослушиватель событий при монтировании компонента, и вам нужно удалить его при размонтировании компонента, чтобы мы могли добиться этого с помощью хуков. Во-первых, взгляните на унаследованный компонент класса.
В приведенном выше примере мы добавляем прослушиватель событий при монтировании компонента и удаляем его в методе жизненного цикла componentWillUnmount.
Давайте посмотрим, как это реализовано в функциональной составляющей.
Обратите внимание, что при использовании отдельного хука эффекта для ширины можно использовать столько эффектов, сколько вы хотите. Хорошая практика состоит в том, чтобы сохранять тесно связанные вещи в одних и тех же эффектах. Следует отметить еще одну вещь: если useEffect выполняется при каждом обновлении, чем события подписываются постоянно. поэтому, чтобы преодолеть это, мы передаем второй аргумент ловушке эффекта, который в основном представляет собой массив обновлений, это может быть состояние или реквизиты, но если он пуст, это означает, что эффект должен запускаться только во время монтирования, и если функция проходит к хуку эффекта верните функцию, которая означает, что она будет запущена, когда компонент будет размонтирован.
С помощью этих крючков мы также можем изготовить нестандартные крючки. Хуки - это просто функции, которые дают возможность хукам реагировать.
Вы можете обратиться к репозиторию git за кодом.
ССЫЛКА НА GITHUB
Любые рекомендации приветствуются.
Спасибо!