🎯 Оптимизация ререндеров в React через мемоизацию функций



Многие знают про React.memo, но часто забывают про useCallback — и получают лишние ререндеры, особенно в списках и сложных компонентах.

📌 Проблема:

const handleClick = () => {
console.log('Clicked');
};

<MyButton onClick={handleClick} />


Такой handleClick создаётся заново при каждом рендере. Если MyButton мемоизирован (React.memo), это сломает оптимизацию — пропсы-то изменились!

✅ Решение:

const handleClick = useCallback(() => {
console.log('Clicked');
}, []);


📈 Профит: Функция сохраняется между рендерами, MyButton не ререндерится без причины.

🧠 Особенно важно для:

* Компонентов в списках (map)
* Контейнеров с большим числом коллбеков
* Производительных UI (таблицы, дашборды, графики)

💡 Используйте eslint-плагин react-hooks/exhaustive-deps — он не даст забыть зависимости.

✍️ @React_lib
Просмотры: 90
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти