Во время моего посещения Flatiron хуки не были обязательными для финального модуля, основанного на React. И сейчас, оглядываясь назад, я определенно могу понять, как изучение крючков в тот момент могло исказить понимание, потому что React Hooks как концепция лучше всего подходит для дополнительного обучения. После того, как вы разработали веб-приложения только с помощью React, вы можете довольно быстро понять, почему они классные.

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

https://twitter.com/prchdk/status/1056960391543062528?s=20

Хуки как концепция довольно просты. На базовом уровне они позволяют нам повторно использовать код. Функции сами по себе не могут иметь внутри себя локальное состояние. Но Hooks позволяет нам использовать функции React, такие как локальное состояние из функции, используя один вызов функции. И чтобы помочь с этим, в React есть встроенные хуки, которые раскрывают фундаментальные блоки, которые React использует для запуска, такие как жизненный цикл или контекст. Самое замечательное то, что хуки — это базовые функции Javascript, поэтому фрагменты можно использовать совместно и повторно использовать практически в любом приложении React. Еще лучше, потому что это функции, которые можно комбинировать в собственные хуки, которые вы, возможно, создали.

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

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