Хуки были последним дополнением к React, доступным в React v16.8.0-alpha.1.

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

ГОСУДАРСТВЕННЫЙ КРЮК

На приведенном выше рисунке показаны три части:

АЛЬФА: это всего лишь одна из переменных состояния. Подобно тому, что мы создаем в компоненте на основе класса, например.

this.state = { isModalOpen: true }.

БЕТА. Это метод, который мы вызываем для обновления значения АЛЬФА. В компоненте на основе класса мы вызываем setState для обновления переменной состояния, но здесь у нас есть собственный пользовательский метод для обновления состояния.

ГАММА: это начальное значение, присвоенное переменной состояния.

Поэтому всякий раз, когда мы хотим обновить переменную состояния (альфа), мы просто вызываем функцию БЕТА и передаем значение, которое хотим присвоить. Нет необходимости в setState.

например setModalStatus(true) это обновит значение isModalOpen( Alpha ) до «true».

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

const [dogName, setDogName] = React.useState('Младший');

const [dogBreed, setDogBreed] = React.useState('Золотистый ретривер');

const [dogOwner, setDogOwner] = React.useState('Роберт');

Это будет беспорядочно, если задействовано большее количество переменных, поэтому, по моему мнению, лучший способ сделать это:

const [ myState, setMyState ] = React.useState({

dogName: «Юниор» ,

dogBreed: «Золотистый ретривер»,

владелец собаки: «Роберт»

});

и всякий раз, когда мы хотим обновить любой из них, все, что нам нужно сделать, это:

setMyState({…myState, dogName: ‘Джимми’, dogBreed: ‘Немецкая овчарка’} );

ЭФФЕКТ КРЮЧКА

Это позволяет нам выполнять побочные эффекты в функциональном компоненте. В основном это комбинация componentDidMount, componentDidUpdate и componentWillUnmount..

Мы можем использовать несколько эффектов в одном компоненте, а также можем привязать эффект к определенной переменной, будь то переменная состояния или любой реквизит.

useEffect(() =› {

setModalStatus(open);

}, [открыть]);

Вышеупомянутый эффект привязан к переменной «open» , поэтому при любом изменении значения «open» будет вызываться этот эффект. Благодаря этому мы можем лучше справляться с побочными эффектами, определяя несколько эффектов для разных переменных состояния или свойств.

Если мы передаем пустой массив в эффект, он вызывается только один раз. Это реализация componentDidMount .

useEffect(() =› {

// ComponentDidMount, вызывается только один раз.

}, []);

Вот и все, ребята, я надеюсь, что это дало вам достаточно, чтобы начать больше изучать плюсы и минусы хуков!