# Alpine.js ![npm bundle size](https://img.shields.io/bundlephobia/minzip/alpinejs) ![npm version](https://img.shields.io/npm/v/alpinejs) [![Chat](https://img.shields.io/badge/chat-on%20discord-7289da.svg?sanitize=true)](https://alpinejs.codewithhugo.com/chat/) Alpine.js bietet dir die gewohnte Reaktivität und deklarative Natur von Vue und React, verzichtet jedoch auf den gegebenen Ballast, der bei solchen Frameworks anfallen kann. Du erweiterst dein DOM nur dort um zusätzliche Funktionalität, wo du es für richtig hältst. Unsere Philosophie erinnert dich vielleicht an [Tailwind](https://tailwindcss.com/), nur eben für Javascript. > Hinweis: Alpines Syntax baut fast gänzlich auf der Syntax von [Vue](https://vuejs.org/) auf (zum Teil auch von [Angular](https://angularjs.org/)). Ich bin für immer dankbar für den Mehrwert, den diese Frameworks der Entwicklung des Webs gebracht haben. ## Übersetzungen der Dokumentation | Language | Link for documentation | | --- | --- | | Chinese Traditional | [**繁體中文說明文件**](./README.zh-TW.md) | | German | [**Dokumentation in Deutsch**](./README.de.md) | | Indonesian | [**Dokumentasi Bahasa Indonesia**](./README.id.md) | | Japanese | [**日本語ドキュメント**](./README.ja.md) | | Portuguese | [**Documentação em Português**](./README.pt.md) | | Russian | [**Документация на русском**](./README.ru.md) | | Spanish | [**Documentación en Español**](./README.es.md) | ## Installation **Von einem CDN:** Erweitere deinen HTML-Kopf (``) um folgendes Skript. ```html ``` Das wars. Die Initialisierung passiert automatisch. Für die Produktionsumgebung wird empfohlen, den Link mit einer spezifischen Versionsnummer zu versehen. Somit kann präventiv sichergestellt werden, dass keine unerwarteten Fehler durch Versionsaktualisierungen zustande kommen. Als Beispiel wird hier die (letzte) Version `2.8.2` spezifiziert: ```html ``` **Über npm:** Installiere das Paket über npm. ```js npm i alpinejs ``` Inkludiere es in deinem Skript. ```js import 'alpinejs' ``` **Für IE11 Support** Nutze stattdessen die folgenden Skripts. ```html ``` Da obige Schema wird als [module/nomodule pattern](https://philipwalton.com/articles/deploying-es2015-code-in-production-today/) bezeichnet. Dadurch wird bezweckt, dass in modernen Browsern automatisch das "modern"-Bundle geladen wird, und das IE11-spezifische Bundle automatisch in IE11 und anderen "legacy"-Browsern geladen wird. ## Use *Dropdown/Modal* ```html
``` *Tabs* ```html
Tab Foo
Tab Bar
``` Du kannst es sogar für nicht-triviale Dinge verwenden: *Pre-fetching a dropdown's HTML content on hover* ```html
Lade Spinner...
``` ## Lerne Es stehen 14 Direktiven zur Verfügung: | Direktive | Beschreibung | | --- | --- | | [`x-data`](#x-data) | Deklariert einen neuen Komponenten-Geltungsbereich. | | [`x-init`](#x-init) | Wertet einen Ausdruck aus, sobald die Komponente initialisiert wurde. | | [`x-show`](#x-show) | Schaltet anhand des Ausdrucks (true oder false) das Element auf `display: none;`. | | [`x-bind`](#x-bind) | Setzt den Wert eines Attributs auf das Ergebnis eines JS-Ausdrucks. | | [`x-on`](#x-on) | Verbindet einen EventHandler mit einem HTML-Elemment. Der spezifizierte JS-Code wird nur dann aufgerufen, wenn das jeweilige Ereignis empfangen wird. | | [`x-model`](#x-model) | Das Direktive sorgt für das Databinding mit Input-Elementen. Hierbei wird ein Databinding in beide Richtungen ermöglicht ("Two way databinding"). | | [`x-text`](#x-text) | Funktioniert ähnlich wie `x-bind`, wobei hier das `innerText` eines Elements aktualisiert wird. | | [`x-html`](#x-html) | Funktioniert ähnlich wie `x-bind`, wobei hier das `innerHTML` eines Elements aktualisiert wird. | | [`x-ref`](#x-ref) | Ermöglicht es, die Elemente einer Komponente im DOM zu referenzieren. | | [`x-if`](#x-if) | Entfernt ein Element aus dem DOM. Kann nur in Kombination mit `