Здравствуйте. Мой путь в веб программировании длится всего около года. Это мне интересно, но лет 5 назад, начав учить js, столкнулся с запутанностью его синтаксиса, бросил, так как была учеба основная, а времени толково все понять - не было. И вот год назад все таки желание превозбладало. Я даже полюбил js, хотя по прежнему нахожу его довольно "рыхлым". Около трех месяцев назад начал составлять резюме, потихоньку пилить различные пет-проекты, но часто натыкался на требования знания react.
Начал разбираться в нем, читал документацию, смотрел некоторые видео, сам писал код, но меня не покидает ощущение, что мой код на нем выглядит еще хуже, чем на чистом js. А самое главное - намного запутаннее. Хотя, как читал, react призван облегчить создание UI, но мне намного проще написать "по классике". Конечно, наверняка дело в неправильной архитектуре приложений, но я стараюсь побольше читать про архитектуры, паттерны и использовать это на практике. Так или иначе, я очень часто ловлю себя на мысли, что на чистом js я бы уже давно смог реализовать то, что задумал, тогда как на react я сижу и потею. Более того, я стал обращать внимание на время загрузки сайта (любого из поиска). Установил себе расширение, которое показывает, на react ли разработан сайт или нет. Так вот, спустя время стал обращать внимание на то, что сайты на react грузятся медленне и в целом ощущаются "тяжелее" обычных. Даже выработался рефлекс - заходишь куда-то, сайт медленно раскручивается, глянешь в панель расширений, ага, реактовское загорелось.
В связи с этим у меня вопрос, чем же обоснована такая популярность этой библиотеки у работодателей? Я действительно не понимаю пока многого, но на данном этапе вижу его применение только для создания SPA (коих сейчас немало, конечно). Но он все равно ощущается очень громоздским, неудобным (!), а модульность со мной сыграла злую шутку (прочитал, что хорошим тоном считается разбивать проект на мельчайшие модули, разбил свой, через пару недель (был занят и заниматься не получалось) я просто почти забыл, что от чего у меня зависит и какой модуль у меня что тянет за собой и главное куда тянет!
Zukrine, ну реакт удобен тем, что он
1. Реактивный
2. Декларативный (следствие реактивности)
Тебе не нужно самостоятельно описывать, как должен перестроиться DOM при получении каких-то данных или при действиях пользователя.
Ты описываешь только итоговый результат, как будто пишешь многостраничное приложение с шаблонизатором без интерактивности на фронте вообще. (Естественно, если у тебя нормальная архитектура)
И SPA на нём реально делаются на порядки проще, чем с каким-нибудь jquery.
То что вы не можете понять, как распространяются зависимости по коду - это, вероятнее всего, проблема ваших же инструментов (если используется что-то типа блокнота), либо что вы в этих инструментах не разобрались (если используется IDE)
+ не исключено, что вы просто построили кривую архитектуру, в которой действительно ничего не понятно. (Было бы интересно посмотреть на код)
Возможно, react не для вас - можно тогда попробовать vue или angular, которые в свою очередь навязывают своё виденье архитектуры приложения.
В связи с этим у меня вопрос, чем же обоснована такая популярность этой библиотеки у работодателей?
Если вы программируете 3 месяца то скорее всего не поймете. React или другой фреймворк изначально подразуевает то, что код хорошо делится по модулям и компонентам, что очень удобно, в обычном js нужно принимать больше усилий чтобы добиться этого. Также есть много готовых решений из коробки, которые уже были отлажены другими более опытными людьми.
а модульность со мной сыграла злую шутку (прочитал, что хорошим тоном считается разбивать проект на мельчайшие модули, разбил свой, через пару недель я просто почти забыл, что от чего у меня зависит и какой модуль у меня что тянет за собой и главное куда тянет!
Видимо вы попробовали выучить реакт за неделю, потом потом на 2-3 недели ушли заниматься своими делами и не трогали его и "внезапно" всё забыли. В целом можно писать комментарии для пояснения. Модульность как раз наоборот упрощает чтение кода и если правильно всё называть и прописывать, то в небольших проектах до 5-10к строк можно будет без проблем разобраться за пару дней тому кто не писал это код.
P.S. Возможно вам лучше выложить вопрос с сылкой на ваш проект и вам подскажут что не так вы сделали, будет полезнее.
реакт как и другие фреймворки создан для облегчения работы
но облегчение происходит через преодоление чудовищной дополнительной сложности
просто тебе надо пострадать и привыкнуть
если ты хочешь работать в индустрии то придется привыкнуть
если ты инди-разработчик то делай свою архитектуру и пиши код как тебе удобно
я такой разраб - и я не понимаю в чем смысл этих фреймворков
сайты действительно очень тормозные на фреймворках - но всем наплевать
главное в капиталистической индустрии - стандартный фреймворк
чтобы не зависеть от разработчика - чтобы можно было уволить любого и взять нового
в этом секрет
любой инди код, при достижении определенной функциональности приложения становится монструозней чем на фреймворке, плюс ты сам отвечаешь за него.
Так что это путь в никуда.
Кстати для понимания зачем это все https://qna.habr.com/q/1229430
сравните сложность оригинального кода автора и мое решение, видно что в моем случае включается "магия"
сайты действительно очень тормозные на фреймворках - но всем наплевать
ну это зависит от того как пишет код, но в целом да, реакт чуть тяжелее, у меня проект грузился почти 3 секунды за первый запуск, но как только ssr впихнули все стало в разы быстрее, теперь почти все страницы грузятся за 200ms
представьте форму из 5 табов, в каждой по 15-20 полей. при изменении некоторых селектов часть полей пропадает, другие появляются, плюс какие-то селекты заполняются с сервера. плюс часть полей зависят от того, кто именно заполняет, плюс локализация, плюс валидация онлайн с проверками в бд на сервере. с реактом решение в разы легче и быстрее должно быть
Вкус любого фреймворка в том что бы не делать лишнюю работу.
В реакте есть реативность, виртуальный виртуальный DOM, роутинг , состояния
Причем это все из коробки.
Кроме того куча разработчиков написало уже компоненты на все случае жизни.
Вот и выходит что на реакте ты в разы быстрее пишешь код. Для работодателя это выгодней хотя бы с экономической точки зрения, кстати не стоит хвататься за новый модный убивальщик любого фреймворка, скорее всего он не будет востребован
UPD
вот сравните https://qna.habr.com/q/1229430
сложность оригинального кода автора и мое решение, видно что в моем случае включается "магия"