LINUX.ORG.RU

Фронтенд без js?

А если серьезно, посмотрел 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»?

Kolins ★★★★
()

Во-первых, оно на js (немного htmx пользовался, вообще не зашло, напомнило отвратительную лапшу на старых версиях php). Во-вторых, сейчас тренд на комбинирование статика/динамика, можно глянуть на Astro 3.0.

ac130kz ★★
()
Ответ на: комментарий от alex1101

Не в данном случае, очень много сайтов еще несколько лет назад переписали под Nest, Next, многие сайты просто на React, Vue. Astro это лишь оболочка метафреймворк поверх.

ac130kz ★★
()

Не нужно. React это венец творения. Бог создал человека, чтобы человек создал React. Ничего лучше уже не придумать.

Советую присмотреться к тому, как генерить HTML на стороне сервера с помощью React. Думаю, что за этим будущее!

vbr ★★★★
()
Последнее исправление: vbr (всего исправлений: 3)

Не нужно. Было уже XML Forms. Популярность оказалась ничтожной. Сейчас для программирования с ограниченным использованием и JavaScript становится модной технология web assembly, а также важны частные решения - Microsoft Blazor и «управляемые формы» 1C.

Partisan ★★★★
()
Ответ на: комментарий от vbr

React это венец творения

Если реакт это венец творения то я - вестник апокалипсиса.

Советую присмотреться к тому, как генерить HTML на стороне сервера с помощью React

И можно с удивлением обнаружить обычный статичный шаблонизатор времен PHP 3.X

alex0x08 ★★★
()
Ответ на: комментарий от alex0x08

Советую присмотреться к тому, как генерить HTML на стороне сервера с помощью React

И можно с удивлением обнаружить обычный статичный шаблонизатор времен PHP 3.X

У PHP не было проверки выдаваемых шаблонов, включая даже проверку типов (если использовать TypeScript) во время компиляции (да там даже самой компиляции не было). Ты путаешь AST и тупую строку. Это две большие разницы.

В мире был один шанс сделать альтернативу React - это Scala с её XML-литералами. Но академики увлеклись моноидами и не разглядели за ними жемчужины.

vbr ★★★★
()
Последнее исправление: vbr (всего исправлений: 3)
Ответ на: комментарий от alex1101

Реакт это терновый венец творения.

Напомню непричастным как выглядит код на реакте:

class Cat extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      humor: 'happy'
    }
  }
  render() {
    return(
      <div>
        <h1>{this.props.name}</h1>
        <p>
          {this.props.color}
        </p>
      </div>
    );
  }
}

Чтобы примерно понимали о чем речь. Остальные присутствующие тоже считают что тут все хорошо и это «венец творения»?

alex0x08 ★★★
()
Ответ на: комментарий от alex0x08

Ты что-то не то написал. Это из 90-х что-то? Сейчас так пишут:

function Cat({name, color}) {
  return (
    <div>
      <h1>{name}</h1>
      <p>{color}</p>
    </div>
  );
}
vbr ★★★★
()
Последнее исправление: vbr (всего исправлений: 2)
Ответ на: комментарий от vbr

У PHP не было проверки выдаваемых шаблонов, включая даже проверку типов (если использовать TypeScript) во время компиляции (да там даже самой компиляции не было).

Хорошо, возьми более новую джаву или шарп - JSP/ASP делают такую же «генерацию HTML» на сервере.

Только это не подается как революция и венец творения.

Проблема с реактом в том что в нем слишком много маркетинга, один из примеров - тот же SSR (Server Side Rendering) который подается как «революция» для поколения фронтэндеров, никогда не писавших никакого бекэнда.

Еще есть люди, серьезно полагающие что бекэнд это только REST.

alex0x08 ★★★
()
Ответ на: комментарий от alex0x08

Ты отстал лет на 5.

Хуки и функциональные компоненты уже давно заменили компоненты-классы.

А вот последний тренд от реакта - это отход от самостоятельного использования библиотеки и рекомендация на уровне разработчиков - пользоваться фреймворками с поддержкой реакта.

vvn_black ★★★★★
()
Ответ на: комментарий от alex0x08

Хорошо, возьми более новую джаву или шарп - JSP/ASP делают такую же «генерацию HTML» на сервере.

JSP это ровно такая же генерация строк..

Только это не подается как революция и венец творения.

Текстовых шаблонизаторов по 10 штук для каждого языка, а где и больше. Там действительно ничего ничего интересного. Суть React в том, что он генерирует дерево, а не текст. И при этом псевдо-XML встроен в язык, максимально органично. Это во-первых даёт тебе «шаблон» в языке, тебе не надо учить все эти <c:forEach, если ты уже знаешь, как работает forEach в стандартной библиотеке. Во-вторых даёт тебе проверку синтаксиса до запуска. В JSP ты можешь писать что угодно. Если у тебя IDE умная, может и подсветит. А может и нет. В итоге будешь в браузере искать, где у тебя там тег не закрыт.

Проблема с реактом в том что в нем слишком много маркетинга, один из примеров - тот же SSR (Server Side Rendering) который подается как «революция» для поколения фронтэндеров, никогда не писавших никакого бекэнда.

Маркетинг не может быть проблемой.

Еще есть люди, серьезно полагающие что бекэнд это только REST.

Ну есть и есть.

vbr ★★★★
()
Последнее исправление: vbr (всего исправлений: 1)
Ответ на: комментарий от vvn_black

А вот последний тренд от реакта - это отход от самостоятельного использования библиотеки и рекомендация на уровне разработчиков - пользоваться фреймворками с поддержкой реакта.

Где про это почитать?

vbr ★★★★
()
Ответ на: комментарий от alex0x08

И что тут все хорошо? Синтаксис не смущает?

Как будто бы есть способ лучше, чтобы объединить код и разметку. А если, мы говорим о js, то этого (смешивать код и разметку) в принципе не избежать.

vvn_black ★★★★★
()
Ответ на: комментарий от vbr

https://react.dev/learn/start-a-new-react-project

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.

Но, хорошо, что есть https://vitejs.dev/

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 2)
Ответ на: комментарий от vvn_black
  1. смешивать код и разметку не правильно

  2. рякт один из самых худших способов это делать, т.к. за этим будет колхоз-райнтайм рендеринга на жс + кривые не совместимые ни с чем нахлобучки и собственные говнокоды

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

смешивать код и разметку не правильно

А как правильно? Может поменять слагаемые местами и смешивать разметку с кодом?

Все это делают, в той или иной мере, и не только в веб. Взять flutter, что от декларативного описания интерфейса код стал сильно приятнее? Нет, та же самая свалка из вложенных компонентов и скобочек-скобочек-скобочек. Хотя, о чём это я, флаттер же вдохновлялся реактом! ))

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 2)
Ответ на: комментарий от vvn_black

В чем проблема поставлять в систему контент на условном JSON, декларативно объявить в нормальном виде цвета и контролы отдельно и просто сгенерировать страницу на основе данных? Чтобы программисту вообще было насрать, в чем будет выхлоп - хоть html, хоть латех, хоть майкросовт паур поинт.

PPP328 ★★★★★
()
Ответ на: комментарий от DumLemming

Ангуляр это детище разработчиков, которым жава необратимо разрушила мозг.

В целом ничего особого там нет. Такие же текстовые шаблоны, как во всех остальных фреймворках. Из плюсов разве что поддержка гугла, это, конечно, дорогого стоит. Но концептуально это всё было тыщу лет назад.

vbr ★★★★
()
Ответ на: комментарий от vvn_black

правильно не смешивать, т.к. иначе получается трудноподдерживаемые авгиевы конюшни по мере развития. Есть шаблоны native templates - в них должен быть html, есть компоненты custom elements - в них бизнес-логика еще конечно стили в css. И вобщем-то никак иначе делать не стоит.

Syncro ★★★★★
()
Последнее исправление: Syncro (всего исправлений: 1)
Ответ на: комментарий от vvn_black

Есть способ лучше, и он уже не первое десятилетие как есть.
Выглядит примерно вот так:

<div>
  <h1>{{ name }}</h1>
  <p>{{ color }}</p>
</div>
Goury ★★★★★
()
Последнее исправление: Goury (всего исправлений: 1)
Ответ на: комментарий от PPP328

Проблема в том что стандартом является HTML, а не какое-то хипстерское говнище в которое криворуким необучаемым макакам очень хочется верить.

Если программисту очень хочется насрать на все стандарты, ему стоит для начала построить свой завод, сделать свои микросхемы, написать для них свою ОС и под неё написать свой браузер который будет парсить его хипстерские потуги быть нитаким.

Иначе программисту нужно соблюдать стандарты, а не пытаться костылями заставить работать свои фантазии.

UPD: ещё своё сетевое оборудование надо будет выпустить и свои протоколы придумать и организовать свой хипстернет.

Goury ★★★★★
()
Последнее исправление: Goury (всего исправлений: 1)

по сабжу: кроме того, что оно выглядит как ворованный велосипед без седушки есть еще такой момент, что добавлять свои произвольные атрибуты в html тэги нельзя, т.е. можно только как дата атрибуты имена которых начинаются с data-.

Если вы это делаете ваш хтмлчик не проходит валидации и может быть не отображен, отображен криво или пессимизирован какими-нибудь робатами.

Идея фигачить в каждый элемент собственные конфигурации за которыми стоит некоторая бизнес-логика, тоже на больших масштабах приложения может быть не очень, т.к. это вобщем-то хардкод.

Syncro ★★★★★
()
Ответ на: комментарий от Goury

не лучше, по идее у вас должны быть только атбируты в форме айди, классов, дата-атрибутов и т.п., а такой вид шаблонизаторов применялся при царе горохе и достиг апофеоза в фреймворках типа ангуляра

Syncro ★★★★★
()
Ответ на: комментарий от Goury

Вы не поняли. Я не предлагаю хтмл-макакам переходить на что-то другое. Я говорю про то, что все это реакты/ангуляры/флафферы смешивают html/css/js прямо внутри кода. Ни один фреймворк не предлагает - вот тебе лейаут разметки, вот тебе контент, вот тебе типы контролов, вот тебе стили контролов и их поведение. Нажми на кнопку, получишь страницу.

Но нет, во всех вышеперечисленных надо руками дивы создавать.

PPP328 ★★★★★
()
Ответ на: комментарий от PPP328

это разделение и компонентная модель уже есть в стандартах WebComponents и популярные колхоз-фреймворки в связи с этим стали устаревшими

Syncro ★★★★★
()
Последнее исправление: Syncro (всего исправлений: 1)