Size: a a a

JavaScript.Ninja

2021 April 19

AI

Arthur Irgashev in JavaScript.Ninja
> а почему биндить хендлеры в конструкторах вредно

потому что есть трильён способов сделать то же самое без биндинга. в целом, рекомендация про использование стрелок over method binding сводится к тому, чтобы разработчики реже стреляли себе по ногам и дебажили код, который иногда из-за внимательности может перестать работать. + ко всему, начинающим разрабам проще сразу писать на стрелках, чем на биндах конструктора. + ко всему, чаще всего конструктор в таких кейсах нужен именно из-за биндов, и если их убрать, то и конструктор пропадает
источник

AI

Arthur Irgashev in JavaScript.Ninja
насчёт перфа - ну тут я воще не уверен, что быстрее. чисто в теории, конечно, на доли мс стрелки могут быть быстрее, но тут сильно часто придётся говорить "зависит"
источник

II

Ilya Izilanov in JavaScript.Ninja
проще просто классы не использовать
источник

AI

Arthur Irgashev in JavaScript.Ninja
но визуально, конечно, ты этот перф не заметишь и аффектить твоё приложение он не будет
источник

AM

Alex Makarov in JavaScript.Ninja
Со стилистическим аргументом я вполне согласен. Но каноническим ответом всегда считался аргумент производительности :)
источник

AI

Arthur Irgashev in JavaScript.Ninja
не, перф под аргумент даже близко не попадает, кмк )
источник

II

Ilya Izilanov in JavaScript.Ninja
ну в статье и другие тоже есть
источник

AM

Alex Makarov in JavaScript.Ninja
но это было по моему одним из самых популярных вопросов на собесах про реакт до хуков :)
источник

AI

Arthur Irgashev in JavaScript.Ninja
я бы лучше задавал как можно больше вопросов про хуки и пытался объяснить, что это плохо на сложных кейсах
источник

AI

Arthur Irgashev in JavaScript.Ninja
потому что, как показывает практика, 60% + кандидатов допускают ошибки в попытках оптимизировать перф и построить сложный стейт на хуках
источник

AM

Alex Makarov in JavaScript.Ninja
я что сейчас спрашивают на собесах если честно вообще хз, года два по ним точно не ходил активно
источник

AM

Alex Makarov in JavaScript.Ninja
сам я по кишкам реакта не гоняю, не считаю что это важно
источник

AI

Arthur Irgashev in JavaScript.Ninja
и когда ты ждёшь ответ в стиле "да не нужна здесь оптимизация, это копейки", люди начинают городить какой-то код ради кода, оверинжинирить и пытаться что-то наворотить, и в итоге впадают в бесконечные ререндеры
источник

AI

Arthur Irgashev in JavaScript.Ninja
ну или другой ответ, который хочешь услышать: "возьми классовый компонент и у тебя пропадут все проблемы с перфом и мемоизацией"
источник

AI

Arthur Irgashev in JavaScript.Ninja
но люди почему-то очень не любят классы, а хуки до конца не понимают и делают кучу ошибок :(
источник

AM

Alex Makarov in JavaScript.Ninja
Вот тот же опыт. Многие топят за хуки, зовут тебя старовером а потом код посмотришь и выясняется что чел понял только первую страничку документации и продающую речь Данечки и автора реакт-роутера
источник

AI

Arthur Irgashev in JavaScript.Ninja
да-да, весьма актуальная проблема
источник

AM

Alex Makarov in JavaScript.Ninja
То есть порог вхождения у хуков выше. Сильно выше. За весьма сомнительную выгоду. Это может быть не проблемой для разрабов уровня фейсбука или лично тебя, но для средней команды в "рога и копыта LLC" это проблема.
источник

AI

Arthur Irgashev in JavaScript.Ninja
ну и да, и нет
источник

AM

Alex Makarov in JavaScript.Ninja
Вот это как раз саммари "почему я не люблю хуки" без технических деталей (пруфов порога и технической выгоды).
источник