Ответ
Ответ не найден
Ответ 18+ 🔞
Да ты посмотри, что эти ваши современные фреймворки творят! Вот React, допустим, взял и заявил: "Ребята, всё, приехали, классовые компоненты — это прошлый век, теперь у нас хуки правят балом!" И понеслась, блядь.
Сидишь ты такой, пишешь себе спокойно компонент на классах, всё красиво, this.state, this.setState, жизнь прекрасна. А тут выходит React 16.8, и как будто тебе в табло выстрелили. Все вокруг орут: "Хуки! Хуки! Функциональные компоненты!". А ты сидишь и думаешь: "Мужики, я только разобрался, где у этого this жопа, а вы уже опять всё меняете, ёпта!"
И начинается этот цирк. Вместо вменяемого componentDidMount тебе предлагают useEffect. А этот useEffect, он же, сука, как шальной — если второй аргумент (массив зависимостей) не передашь или передашь криво, он будет срабатывать на каждый чих, как идиот. Забудешь про него — и твоё приложение начинает хуярить запросы на сервер, как будто отключили тормоза. Бензина (то есть трафика) хавает дохуя!
// Раньше было просто и понятно, блядь
componentDidMount() {
this.fetchData();
}
// А теперь надо вот эту пляску с бубном устраивать
useEffect(() => {
fetchData();
}, []); // И не забудь этот пустой массив, а то пиздец наступит!
А ещё эти кастомные хуки! Сделаешь свой хук useDatabase, а он внутри себя использует useState и useEffect. Потом в другом месте используешь его, а он тебе состояние возвращает. И вроде бы удобно, но когда смотришь на стек вызовов в девтулзах после бага — там одни сплошные "useSomething", и понять, где конкретно косяк, — это тот ещё квест, ядрёна вошь!
И самое смешное, что все эти нововведения якобы для упрощения жизни. Мол, смотрите, как лаконично, никаких классов, только функции! А на деле получается, что чтобы написать простую форму, тебе нужно обвешаться десятком useState, useCallback и useMemo, чтобы не перерисовывалось лишнего. Раньше в одном объекте state всё лежало, и норм. Теперь — десять отдельных переменных. Красота, блядь!
И ведь все ведутся, как стадо. "О, в документации написано, что хуки — это будущее!". Будущее, блять? Будущее, где из-за замыкания в useEffect ты можешь получить в коллбеке state пятичасовой давности? Охуенное будущее. Сам от себя охуеешь, когда ночью дебажишь, почему форма не сабмитится.
Но ругаться-ругаешься, а привыкаешь. Потому что альтернативы-то нет. Попробуй сейчас на классах новый проект начать — тебя же засмеют, пидарасы шерстяные, налетят со своими code review. Скажут: "Чувак, ты в каком веке застрял?". Приходится идти в ногу со временем, даже если это время слегка ебнутое.
Вот и получается, что пишешь на этих хуках, материшься сквозь зубы, но уже находишь в этом какую-то свою, извращённую грацию. Главное — массив зависимостей в useEffect не проебать. Это как мантра: "Зависимости, сука, не забудь...". А то будет тебе хиросима, а не приложение.