useEffect не нужен? Плагин ESLint, который делает код чище
Разбираем плагин you-might-not-need-an-effect: зачем он нужен, как помогает избавиться от лишних useEffect в React и писать более чистый, предсказуемый код.
Привет! Это Кодик — твой гид в мире программирования. Мы не только разбираем новые инструменты, но и делимся лайфхаками в нашем Telegram-канале — заходи, там уже 1500+ разработчиков обсуждают свежие фичи и делятся опытом.
Проблема избыточных useEffect
React давно подарил нам хук useEffect, и он стал универсальным «швейцарским ножом» для сайд-эффектов. Но есть побочка: разработчики часто используют его там, где он совсем не нужен.
👉 В итоге код превращается в кашу: куча подписок, лишние ререндеры, зависимости, которые ломают голову.
👉 А ведь во многих случаях можно обойтись простыми вычислениями или мемоизацией.

Что делает плагин?
Плагин ESLint eslint-plugin-you-might-not-need-an-effect появился как лекарство от привычки «пихать всё в useEffect».
Он анализирует твой код и подсказывает, когда useEffect избыточен. Например:
❌ Лишнее использование useEffect только для вычисления значения → лучше useMemo.
❌ Обновление стейта внутри эффекта без зависимости → привет бесконечный цикл.
❌ Сайд-эффекты, которые можно вынести прямо в рендер или коллбэк.
Примеры правил описаны ниже:
Пример 1: лишний useEffect
// Плохо
useEffect(() => {
setValue(a + b);
}, [a, b]);
// Хорошо
const value = a + b;
Пример 2: мемоизация вместо эффекта
// Плохо
useEffect(() => {
const filtered = items.filter(fn);
setFiltered(filtered);
}, [items, fn]);
// Хорошо
const filtered = useMemo(() => items.filter(fn), [items, fn]);

Чем это помогает?
Код становится чище и предсказуемее.
Меньше лишних ререндеров → выше производительность.
Ты начинаешь лучше понимать, где реально нужен сайд-эффект, а где это «костыль».
useEffect — мощный инструмент, но его переиспользование приводит к хаосу. Плагин you-might-not-need-an-effect помогает «поймать себя за руку» и научиться писать React-компоненты проще.
Попробуй поставить его в свой проект — и увидишь, как код станет чище.
Больше таких разборов в нашем Telegram-канал — там обсуждаем новые плагины, делимся курсами и разбираем свежие тренды в разработке.