이 콘텐츠는 변경됩니다.
## Inleiding {#sec-8f30851140f6} De webontwikkelingsomgeving wordt steeds complexer. Frontend frameworks zoals React of Vue.js zijn krachtig, maar niet voor elk project noodzakelijk. Vooral bij het implementeren van eenvoudige dynamische functionaliteiten kunnen deze frameworks leiden tot onnodige complexiteit. **[[HTMX]]** is ontstaan om dit probleem aan te pakken: een **lichtgewicht, HTML-georiënteerde bibliotheek** die naadloos integreert met server-side frameworks zoals Django om dynamische webapplicaties eenvoudig te bouwen.  ## Wat is [[HTMX]]? {#sec-a0108dfea168} HTMX is een lichtgewicht JavaScript-bibliotheek, ontworpen om dynamische webontwikkeling te vereenvoudigen. Zonder complexe JavaScript-code of frontend frameworks maakt het mogelijk om dynamische functionaliteiten zoals **AJAX**, **WebSockets** en **Server-Sent Events (SSE)** te implementeren met enkel HTML-attributen. ## Belangrijke HTML-attributen van HTMX {#sec-4ea8e105a73c} * **hx-get**: Stuurt een `GET`-verzoek naar de server. * **hx-post**: Stuurt een `POST`-verzoek naar de server. * **hx-swap**: Voegt de ontvangen reactie van de server in op een specifiek deel van de pagina. * **hx-trigger**: Activeert een actie op basis van specifieke gebeurtenissen, zoals een klik of muisbeweging. * **hx-target**: Specificeert het specifieke HTML-element waarin de van de server ontvangen inhoud moet worden weergegeven. Dankzij deze attributen combineert HTMX naadloos met een **server-centrische renderingaanpak**, zoals die van Django. ## Verschillen tussen Django Template en [[HTMX]] {#sec-b553d9a1aa9d} ### 1. Django Template {#sec-c44ee559797a} * Een Django Template rendert HTML op de server en stuurt vervolgens de complete pagina terug naar de client. * Dit is de traditionele methode, waarbij de pagina wordt herladen. * Om dynamische functionaliteiten toe te voegen, moet je direct JavaScript schrijven. ### 2. Django + HTMX {#sec-c1e9f1e7e591} * Met HTMX kun je **specifieke delen van de pagina bijwerken zonder een volledige herlaadbeurt**. * Een Django-view retourneert slechts een deel van de HTML, en HTMX voegt dit in een specifiek element aan de clientzijde in. * Dit biedt een dynamische gebruikerservaring zonder complexe JavaScript-code. ## Integratievoorbeeld van Django en HTMX {#sec-9a6eada58ca7} ### Basis Django View-code {#sec-14c13b64e461} ```python from django.shortcuts import render def update_content(request): if request.htmx: return render(request, 'partials/content.html') # 부분 HTML 반환 return render(request, 'index.html') # 전체 페이지 반환 ``` ### Template-configuratie {#sec-677344a74297} #### index.html ```html
이 콘텐츠는 변경됩니다.
새로운 콘텐츠가 여기 표시됩니다.
``` ### Werkingsresultaat {#sec-8475f6be53ff} 1. Wanneer de gebruiker op de knop klikt, wordt een `GET`-verzoek naar de `/update/`-URL gestuurd. 2. De server retourneert de `partials/content.html`-template, waarna de inhoud binnen `