А если серьезно, посмотрел htmx.org первый же пример
<script src="https://unpkg.com/htmx.org@1.9.5"></script>
<!-- have a button POST a click via AJAX -->
<button hx-post="/clicked" hx-swap="outerHTML">
Click Me
</button>
Во-первых, оно на js (немного htmx пользовался, вообще не зашло, напомнило отвратительную лапшу на старых версиях php). Во-вторых, сейчас тренд на комбинирование статика/динамика, можно глянуть на Astro 3.0.
Не в данном случае, очень много сайтов еще несколько лет назад переписали под Nest, Next, многие сайты просто на React, Vue. Astro это лишь оболочка метафреймворк поверх.
Не нужно. Было уже XML Forms. Популярность оказалась ничтожной.
Сейчас для программирования с ограниченным использованием и JavaScript становится модной технология web assembly, а также важны частные решения - Microsoft Blazor и «управляемые формы» 1C.
Советую присмотреться к тому, как генерить HTML на стороне сервера с помощью React
И можно с удивлением обнаружить обычный статичный шаблонизатор времен PHP 3.X
У PHP не было проверки выдаваемых шаблонов, включая даже проверку типов (если использовать TypeScript) во время компиляции (да там даже самой компиляции не было). Ты путаешь AST и тупую строку. Это две большие разницы.
В мире был один шанс сделать альтернативу React - это Scala с её XML-литералами. Но академики увлеклись моноидами и не разглядели за ними жемчужины.
У PHP не было проверки выдаваемых шаблонов, включая даже проверку типов (если использовать TypeScript) во время компиляции (да там даже самой компиляции не было).
Хорошо, возьми более новую джаву или шарп - JSP/ASP делают такую же «генерацию HTML» на сервере.
Только это не подается как революция и венец творения.
Проблема с реактом в том что в нем слишком много маркетинга, один из примеров - тот же SSR (Server Side Rendering) который подается как «революция» для поколения фронтэндеров, никогда не писавших никакого бекэнда.
Еще есть люди, серьезно полагающие что бекэнд это только REST.
Хуки и функциональные компоненты уже давно заменили компоненты-классы.
А вот последний тренд от реакта - это отход от самостоятельного использования библиотеки и рекомендация на уровне разработчиков - пользоваться фреймворками с поддержкой реакта.
Хорошо, возьми более новую джаву или шарп - JSP/ASP делают такую же «генерацию HTML» на сервере.
JSP это ровно такая же генерация строк..
Только это не подается как революция и венец творения.
Текстовых шаблонизаторов по 10 штук для каждого языка, а где и больше. Там действительно ничего ничего интересного. Суть React в том, что он генерирует дерево, а не текст. И при этом псевдо-XML встроен в язык, максимально органично. Это во-первых даёт тебе «шаблон» в языке, тебе не надо учить все эти <c:forEach, если ты уже знаешь, как работает forEach в стандартной библиотеке. Во-вторых даёт тебе проверку синтаксиса до запуска. В JSP ты можешь писать что угодно. Если у тебя IDE умная, может и подсветит. А может и нет. В итоге будешь в браузере искать, где у тебя там тег не закрыт.
Проблема с реактом в том что в нем слишком много маркетинга, один из примеров - тот же SSR (Server Side Rendering) который подается как «революция» для поколения фронтэндеров, никогда не писавших никакого бекэнда.
Маркетинг не может быть проблемой.
Еще есть люди, серьезно полагающие что бекэнд это только REST.
А вот последний тренд от реакта - это отход от самостоятельного использования библиотеки и рекомендация на уровне разработчиков - пользоваться фреймворками с поддержкой реакта.
If you want to build a new app or a new website fully with React, we recommend picking one of the React-powered frameworks popular in the community. Frameworks provide features that most apps and sites eventually need, including routing, data fetching, and generating HTML.
рякт один из самых худших способов это делать, т.к. за этим будет колхоз-райнтайм рендеринга на жс + кривые не совместимые ни с чем нахлобучки и собственные говнокоды
А как правильно? Может поменять слагаемые местами и смешивать разметку с кодом?
Все это делают, в той или иной мере, и не только в веб. Взять flutter, что от декларативного описания интерфейса код стал сильно приятнее? Нет, та же самая свалка из вложенных компонентов и скобочек-скобочек-скобочек. Хотя, о чём это я, флаттер же вдохновлялся реактом! ))
В чем проблема поставлять в систему контент на условном JSON, декларативно объявить в нормальном виде цвета и контролы отдельно и просто сгенерировать страницу на основе данных? Чтобы программисту вообще было насрать, в чем будет выхлоп - хоть html, хоть латех, хоть майкросовт паур поинт.
Ангуляр это детище разработчиков, которым жава необратимо разрушила мозг.
В целом ничего особого там нет. Такие же текстовые шаблоны, как во всех остальных фреймворках. Из плюсов разве что поддержка гугла, это, конечно, дорогого стоит. Но концептуально это всё было тыщу лет назад.
правильно не смешивать, т.к. иначе получается трудноподдерживаемые авгиевы конюшни по мере развития. Есть шаблоны native templates - в них должен быть html, есть компоненты custom elements - в них бизнес-логика еще конечно стили в css. И вобщем-то никак иначе делать не стоит.
Проблема в том что стандартом является HTML, а не какое-то хипстерское говнище в которое криворуким необучаемым макакам очень хочется верить.
Если программисту очень хочется насрать на все стандарты, ему стоит для начала построить свой завод, сделать свои микросхемы, написать для них свою ОС и под неё написать свой браузер который будет парсить его хипстерские потуги быть нитаким.
Иначе программисту нужно соблюдать стандарты, а не пытаться костылями заставить работать свои фантазии.
UPD: ещё своё сетевое оборудование надо будет выпустить и свои протоколы придумать и организовать свой хипстернет.
по сабжу: кроме того, что оно выглядит как ворованный велосипед без седушки есть еще такой момент, что добавлять свои произвольные атрибуты в html тэги нельзя, т.е. можно только как дата атрибуты имена которых начинаются с data-.
Если вы это делаете ваш хтмлчик не проходит валидации и может быть не отображен, отображен криво или пессимизирован какими-нибудь робатами.
Идея фигачить в каждый элемент собственные конфигурации за которыми стоит некоторая бизнес-логика, тоже на больших масштабах приложения может быть не очень, т.к. это вобщем-то хардкод.
не лучше, по идее у вас должны быть только атбируты в форме айди, классов, дата-атрибутов и т.п., а такой вид шаблонизаторов применялся при царе горохе и достиг апофеоза в фреймворках типа ангуляра
Вы не поняли. Я не предлагаю хтмл-макакам переходить на что-то другое. Я говорю про то, что все это реакты/ангуляры/флафферы смешивают html/css/js прямо внутри кода. Ни один фреймворк не предлагает - вот тебе лейаут разметки, вот тебе контент, вот тебе типы контролов, вот тебе стили контролов и их поведение. Нажми на кнопку, получишь страницу.
Но нет, во всех вышеперечисленных надо руками дивы создавать.