Рубрики
Без рубрики

UseffectX: лучшая альтернатива для использования

UseFeffectX: замена Drop-In-in Asefectect, которая дает вам предыдущие и текущие значения элемента зависимости в аргументах обратного вызова

Автор оригинала: anil chaudhary.

Изображение Avery Morrow

Мой опыт работы с Реактивные крючки были удивительны. В этой статье я точно разговариваю по одному из самых выдающихся крючков, которые мы используем ежедневно, что это Useffect.

Я предполагаю, что читатели, приходящие к этой статье, обладают хорошим пониманием использования. Если нет, пожалуйста, сначала пройдите концепцию на rectjs.org Отказ

Так по сути, Useffect Реагируйте на изменения в списке зависимостей. Они заменили ComponentDIDMount, ComponentDiDUppdate, ComponentWillunMount и ComponentWillReceiveProps в Компоненты реакции на основе класса.

Очень распространено, что необходимо реагировать на изменения значений опоры или значения состояния в течение всей жизни компонента. Нам также необходимо сравнить предыдущие значения и текущие значения при частоте изменения на изменения. В компоненте на основе класса мы имели ComponentDidupdate для подобных случаев использования.

Он имеет следующий интерфейс:

componentDidUpdate(prevProps, prevState, snapshot)

У вас есть доступ к Prevprops (предыдущие реквизиты) и Prevstate (предыдущее состояние) , который можно использовать для созревания и соответствующим образом реагировать.

Как насчет использования, как бы вы сделали те сравнение с ними?

Решение 1.

Вы можете иметь ComplyPrevious Пользовательский крючок, который всегда даст вам предыдущее значение, и что вы используете в своем использовании для завершения сравнения. Давайте посмотрим какой-код.

Обратите внимание, как ComplyPrevious Крюк помогает нам, отслеживая предыдущее значение. Теперь подумайте о сценарии, когда в нашем случае существует более одной зависимости. Нам нужно использовать ComplyPrevious крючок много раз или мы должны повторно определить наши ComplyPrevious крючок для отслеживания массива зависимости.

Разве это не слишком много работы каждый раз?

Можем ли мы иметь что-то похожее на компонентДупдате? Мы можем иметь предыдущие и текущие значения зависимостей как аргумент обратного вызова использования.

Это может сэкономить нам много времени, работая с сценариями обновления в крючке USEFECT.

Решение 2.

Я смог упаковать все в пакете NPM, который может выступать в качестве падения замены для использования в любом месте. Я называю это useffectx. Давайте посмотрим тот же пример, который мы показали вышеуказанным кодовым ящиком с нашим блестящим новым useffectx.

Теперь обратите внимание, как у нас есть доступ к предыдущим значениям в аргументах самого Callback auseffectx. Нам не нужен какой-либо приятный крючок, а теперь аргументы полностью не являются обязательными для любой функции. Приведенные ниже фрагменты кода также будут работать точно такой же, как официальный useffect.

useEffectX(() => {
  console.log(val, someotherVal)
}, [val, someotherVal])

useEffectX(() => {
 console.log("do something after every render")
})

Спасибо. Пожалуйста, дайте мне знать, что вы все думаете об этом useffectx.