JRK_DV, ну тут смысл в том, чтобы сделать компонент максимально переиспользуемым. А сколько он там в себе файлов содержит уже не так важно. Ну и у меня концепция немного другая-php компоненты. Изначально эта идея как раз и возникла при разработке конструктора лендингов в недрах студии, где я работаю. Ошибка была в том, что мы делали это внутри mvc фреймворка. А там сама архитектура подрузамевает хранение файлов компонента в разных папках. Потом я сам уже написал своё апи внутри WordPress темы. Таким образом, чтобы компоненты были максимально автономными.
Ну а вообще однофайловый компонент сам по себе не очень удобен, если компонент больше одного экрана))
procode, напомните, пожалуйста, чем вам стал тесен WordPress? Может Вы изучили его только поверхностно? ))) Я сам на чем только не писал (в основном это был WP, Laravel и чутка Nodejs), но в итоге пока вернулся к WordPress из-за удобной готовой админки и не навязывающей шаблоны проектирования структуры проекта. WP позволяет мне думать над самим сайтом, а не над тем как его сделать))
Можете посмотреть еще www.slimframework.com/, мне его советовал давно хороший знакомый, когда мы с ним обсуждали, как ужасен MVC.
rshruslan, так посмотри как сделано любое стороннее адекватно работающее решение и разбери как оно устроено. Свой собственный велосипед нужно писать только тогда, когда ты проанализировал несколько готовых решений.
Roman Kitaev, SSR это не пререндеринг. Пререндеринг, это когда ты данные рендеришь для поискового робота с помощью какого-либо сервиса. Этот способ SEO оптимизации был рекомендован создателем первого ангуляра. Важно понимать, что пререндер, генерация статики и серверный рендеринг это разные подходы для решения проблемы SEO в SPA приложениях.
Я считаю пререндеринг костылем по нескольким причинам:
1) Использование сторонних сервисов и как следствие доп расход на сайт.
2) Скорее всего разное оформление страниц для поискового бота и для реального пользователя. Ходят слухи, что за это могут наказать понижением в выдаче
Андрей Федоров, зато просто и понятно)
А семантичность тут не играет никакой роли)
Это ведь графическое представление.
Используют же иконочные шрифты или SVG. По Вашей логике они тоже усложняют верстку и являются несемантичными. Если прям так хочется семантичности, ставь aria-hidden="true".
Ну а вообще однофайловый компонент сам по себе не очень удобен, если компонент больше одного экрана))