Имею стаж 4 года в веб разработке, пишу 3 года на Ангуляре. Всегда работал в компаниях, где все фронты были чистыми ангулярщиками И тут волею судьбы попадаю в новую компанию, где половина фронтедщиков писали в большинстве случаев на реакте. Так как проект новый, пишется с нуля, то царит небольшой хаос, еще обсуждаются и утверждаются архитектура, код стайлы и тд. И вот на очередном митинге я слышу о необходимости написания таких компонентов как.. кнопка, инпут, чекбокс...
Нет, ну я то понимаю и всегда делаю вынесение в отдельные компоненты кусков кода, коротый многоразово переистользуется, как-то айтем-товара, менюшка, сайдбар, таблица... Но КНОПКА! Но ИНПУТ!!!
Вот казалось бы считал я себя кем-то средним между мидлом и сеньером, заморачивался более высокими материями, сложными конструкциями и абстрациями, хотя и не гнушался, если необходимо что-то подверстать, но в голове не укладывается зачем сознавать компонент, писать для него тесты, внутри которого будет всего лишь однин html-тег, на который параметрами будут навешиваться атрибуты, добавляться css-классы если можно и так навесить необходимые html-теги и css-классы!? Зачем делать такую бойлерплейт-работу? Зачем создавать лишний код, который будет лишний раз нагружать браузер пустой JS работой если все уже придумано в html? От колег я смог получить лишь довольно специфическое обьяснение что я ретроград и "так прикольнее"...
Смысл может быть а может и не быть.
Если у вас компонент состоит только из одного тега и все - то конечно нет смысла.
Если есть хотя бы две вещи связанные друг с другом, например тег+стиль, или тег+код - то уже есть смысл.
Если есть некий фирменный стиль, то компонент кнопка однозначно отражает дизайн этого стиля: фиксированные размеры, допустимые цвета. А если этого стиля нет, то такой компонент в дальнейшем позволит его легко поддержать.
Ангуляр не поощряет делать много маленьких компонентов. В ангуляре компонент это большая штука.
В том же вью оно проще, радостно лепишь кучу компонентов на любой чих.
В конце концов, для вещей, о которых вы пишете, есть директивы.
И уж если вместо хотят вместо <input [class.loading]="loading" type="button"> порываются сделать
кстати насчет лишнего кода и пустой js работы. Вы же в курсе что темплейт это вообще то не кусок настоящего html, это описание js функции рендера, типа jsx у того же реакт.
Просто тут мы используем хорошо знакомый html, но его разбирает не браузер, а компилятор ангуляра и делает из него js. И из каждого тега оно сделает componentInstance
В том то и дело, что реактовцы, особенно техлид. Но что подеаешь, контора платит. Придется на работе использовать "реактовый" ангуляр, а дома на пет-проектах "ангуляр здорового человека"))