Search
Write a publication
Pull to refresh
0
0
Send message

Хорошо, хоть сами разработчики React признают, что «it’s probably not the ideal user experience».

Обработка ошибок - головная боль разработчиков, а не юзеров. В целом приложение должно работать без ошибок, а те ошибки, которые существуют, лучше пусть красными буквами на весь экран о себе заявляют, чем если бы они тихонечко в углу интерфейса выдавали бы пустоту, вместо компонента. В этом плане реакт наоборот лучше всех конкурентов.

в JSX-разметку нельзя передавать объект, это вызовет ошибку рендера (возможность просто вывести этот объект как JSON опять же не влезла в 135 Кб React-DOM, видимо)

Это честнее и правильнее относительно нативного жс. Вроде наоборот все ноют о том, как реакт непонятен и его механизмы работают как магия - так зачем еще одно заклинание добавлять? Хотите отобразить объект? Ну так скажите каким образом, так как это не JSX элемент, а преобразовывать его автоматически в строку JSON - не всегда то, что нужно (промолчку про дурной тон дебажить через отображение объекта в интерфейсе).

Разгадка проста: React полагается на порядок вызова хуков! Иными словами, состояние хуков внутри хранится в строго определённом порядке. Если порядок изменится, то состояние (скорее всего) станет невалидным. Поэтому хук вызывается всегда, нужен ли он или нет.

Не кажется ли вам это костылём?

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

Или необходимость вручную указывать зависимости хуков в массиве? Нет, в этом есть какой-то шарм, но...  Это выглядит как ручная правка убогости самого механизма встроенных хуков!

Лучшее, что есть в функциональной парадигме реакта - подписываешься на изменение параметра (состояния), и выполняешь желаемый алгоритм, надо просто аккуратно это делать и не очень увлекаться добавлениями эффектов. Жаловаться на это примерно как жаловаться на addEventListener. В целом useEffect сложная штука для восприятия только потому, что сам рендеринг в реакте сложно устроен, ввиду использования функциональной парадигмы программирования, от чего у ООП любителей мозг кипит (отсюда и претензии к пересоздаванию функций при каждом рендере, нелюбовь к useCallback/useMemo и тд).

кто-то же с 18 начинает работать уже и за 7 лет стать норм сеньором вполне реально

а вообще можно и в универе за какие-нибудь 6 лет магистратуры набраться таких знаний, что некоторые сеньоры-самоучки будут тебе в некоторых моментах уступать по хардам (а софты от человека зависят и там хоть в 18 чел может быть уже готов быть сеньором/лидом)

Information

Rating
Does not participate
Registered
Activity