Heim >Web-Frontend >js-Tutorial >HTMX: Die Zukunft des Webs

HTMX: Die Zukunft des Webs

Linda Hamilton
Linda HamiltonOriginal
2025-01-16 20:30:13998Durchsuche

HTMX: Optimierte Webentwicklung mit HTML-zentrierten Interaktionen

In diesem Beitrag geht es um meine Erfahrungen bei der Integration von HTMX in eine SaaS-Plattform, die mit Tailwind CSS (Frontend), Python und Flask (Backend) erstellt wurde. Während ich mit den anderen Technologien vertraut bin, ist HTMX eine neue Ergänzung zu meinem Toolkit. Dieser Beitrag beschreibt die Implementierung.

JSON-orientierte Architektur: Die Herausforderung

Bevor man sich mit HTMX beschäftigt, ist es wichtig, sein Ziel zu verstehen. Herkömmliche Full-Stack-Anwendungen basieren häufig auf einer JSON-orientierten Architektur. Das Backend sendet JSON-Daten und das Frontend rendert sie. Dieser Ansatz verbessert zwar die Interaktivität, leidet jedoch unter einem erheblichen Datenaufwand. JSON-Nutzlasten können zehnmal größer sein als entsprechendes HTML, was zu einer langsameren Leistung führt.

HTMX: The Future of Web

HTMX: Ein Paradigmenwechsel

HTMX behebt diese Ineffizienz, indem es dafür plädiert, dass der Server HTML direkt zurückgibt. Dadurch wird die Datenübertragung minimiert und das Benutzererlebnis verbessert. HTMX geht über den einfachen JSON-Ersatz hinaus; Es integriert die serverseitige und clientseitige Logik eng, was zu schnelleren und reaktionsschnelleren Interaktionen führt.

Entscheidend ist, dass HTMX JavaScript nicht ersetzt. Es erfordert die Einbindung von JavaScript (über CDN oder lokale Datei).

HTMX: The Future of Web

Ein wesentlicher Vorteil von HTMX gegenüber anderen JavaScript-Frameworks ist die Fähigkeit, direkt über HTML-Attribute mit APIs zu interagieren und so den JavaScript-Code zu minimieren.

Beispiel: Daten abrufen und rendern

Der folgende Code zeigt, wie Daten von einer API mithilfe von HTMX, clientseitigen Vorlagen und der Nunjucks-Vorlagen-Engine abgerufen und gerendert werden:

<code class="language-html"><title>Nibodhdaware News Blog</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"></code>

Dadurch wird der HTML-Code eingerichtet, einschließlich HTMX und seiner clientseitigen Vorlagenerweiterung (später erklärt). Nunjucks wird zum Erstellen von Vorlagen verwendet.

Die Haupt-Rendering-Logik:

<code class="language-html"><h1>Nibodhdaware</h1>
<p>HTMX JSON API Test</p>
<div hx-ext="client-side-templates">
  <div hx-get="https://api.spaceflightnewsapi.net/v4/blogs/" hx-trigger="load" nunjucks-template="blogs-template">
    <template>
      <p>The `hx-ext='client-side-templates'` attribute tells HTMX to utilize the extension.  We're using the Space Flight News API. `hx-trigger="load"` sends a GET request on page load.  `nunjucks-template` identifies the template.</p>

      <p>The API response schema is:</p>
      <code>
      {
        "count": 123,
        "next": "...",
        "previous": "...",
        "results": [ /* array of blog objects */ ]
      }
      </code>

      <p>Nunjucks (similar to Jinja) uses `{% %}` for code blocks and `{{ }}` for variables.  `{% if previous %}` checks for pagination. `{% for blog in results %}` iterates through blog posts, accessing properties like `{{ blog.url }}` and `{{ blog.title }}`.</p>

      <p>The blog posts are loaded directly from the API upon page load.</p>
      <img src="/uploads/20250116/17370305576788fb9d220a3.jpg" width="800" height="400" loading="lazy">

      <p>The remarkable aspect is the direct use of API data without explicit fetch calls or JavaScript manipulation of `innerHTML`.</p>
    </template>
  </div>
</div></code>

Fazit

Während Sie möglicherweise noch JSON-APIs erstellen müssen, vereinfacht HTMX das Frontend, indem es direktes HTML-Rendering ermöglicht, die Entwicklungskomplexität reduziert und die Leistung verbessert.

Das obige ist der detaillierte Inhalt vonHTMX: Die Zukunft des Webs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn