Получи случайную криптовалюту за регистрацию!

Хук useGetLatest Этот хук создает из объекта геттер, который | Easy JS

Хук useGetLatest

Этот
хук создает из объекта геттер, который может помочь избежать многих проблем с лишними ререндерами и утечками памяти. С его помощью можно как оптимизировать большие компоненты, так и создавать собственные хуки. Не думаю, что вы сможете широко применять его в простых компонентах. Я бы советовал составлять пропсы "глупых" компонентов из примитивов (насколько это возможно).

Допустим, есть компонент, который принимает большой объект settings (второй скрин). Нужно при каждом клике по странице делать определенные манипуляции с settings. Многие просто взяли и влепили бы props.settings в зависимости useEffect на 16 строке. Что привело бы к перерегистрации handleClick обработчика при каждом ререндере родительского компонента. Перспектива мрачная.

Другой вариант - деструктурировать settings и добавлять в зависимости useEffect конкретные поля. Уже лучше. Перерегистраций handleClick станет меньше из-за того, что в зависимостях будет не весь объект, а конкретные его части. Но и это можно улучшить.

С помощью useGetLatest useEffect будет срабатывать только один раз, но внутри будет доступ к последним значениям settings.

Код, как обычно, в комментах.

#react