Комментарии 6
А еще есть preact и htm, и вместе они позволяют делать все как в react, но без прекомпилятора, транспилятора и еще кого-то ***лятора. Потому что современным браузерам ничего не надо.
<!DOCTYPE html>
<html>
<head>
<script type="importmap">
{
"imports": {
"preact": "https://esm.sh/preact@10.23.1",
"htm/preact": "https://esm.sh/htm@3.1.1/preact?external=preact"
}
}
</script>
</head>
<body>
<div id="app"></div>
<script type="module">
import { render } from 'preact';
import { html } from 'htm/preact';
export function App() {
return html`
<h1>Hello, World!</h1>
`;
}
render(html`<${App} />`, document.getElementById('app'));
</script>
</body>
</html>https://preactjs.com/guide/v10/no-build-workflows
Набросать простенькое приложение можно очень быстро, и если потребуется, можно будет перетащить все на взрослый реакт, как минимум основная логика легко переносится.
Основное преимущество htmx — это его высочайшая производительность, он отлично подходит и для больших проектов, сложных больших приложений. А в случае с Preact все наоборот, чем сложнее приложение — тем он медленнее даже полноценного React, что уж говорить о htmx. Так что Preact ему не конкурент за рамками каких-то простых страничек.
htmx отличная штука, позволяет реализовать классные фичи в проекте быстро, особо не погружаясь в js / jQuery.
он отлично подходит и для больших проектов, сложных больших приложений.
Интересно, как будет выглядеть на htmx реализация такой штуки: внутри формы при выборе чекбокса нужно спрятать/показать другой блок, при выборе значения в одном селекте в другом селекте показать определённый список и т.п.
Проблема в htmx в том, что он не заморачивается с сохранением визуального состояния (например, фокус на чекбоксе), так как меняет всё через innerHTML.
Состояние хранится на сервере и разработчики этому только рады, больше нет рассинхронизации состояний: https://youtu.be/3GObi93tjZI?si=x_kRV7NJabyWt88p&t=473
Если вам нужно просто скрывать одни блоки и отображать другие для интуитивности интерфейса, то никто не мешает просто добавить пару строк на JavaScript для этого.
Философия htmx в том, чтобы использовать JavaScript только там, где он нужен, по его прямому назначению, а не отказаться от него совсем.
ноль вакансий с упоминанием htmx (
Пишем одностраничное приложение с помощью htmx