diff --git a/src/content/docs/de/tutorial/3-components/1.mdx b/src/content/docs/de/tutorial/3-components/1.mdx new file mode 100644 index 0000000000000..61fab8de2afc4 --- /dev/null +++ b/src/content/docs/de/tutorial/3-components/1.mdx @@ -0,0 +1,156 @@ +--- +type: tutorial +title: Erstelle eine wiederverwendbare Navigationskomponente +description: |- + Tutorial: Baue deinen ersten Astro-Blog — + Ersetze Elemente, die auf mehreren Seiten wiederholt werden, durch eine wiederverwendbare Komponente +i18nReady: true +--- +import Badge from '~/components/Badge.astro'; +import Box from '~/components/tutorial/Box.astro'; +import Checklist from '~/components/Checklist.astro'; +import MultipleChoice from '~/components/tutorial/MultipleChoice.astro'; +import Option from '~/components/tutorial/Option.astro'; +import PreCheck from '~/components/tutorial/PreCheck.astro'; +import { Steps } from '@astrojs/starlight/components'; + + +Nun, da du denselben HTML-Code auf mehreren Seiten deiner Astro-Website wiederholt hast, ist es an der Zeit, diesen doppelten Inhalt durch eine wiederverwendbare Astro-Komponente zu ersetzen! + + + - Erstelle einen neuen Ordner für Komponenten + - Baue eine Astro-Komponente, um deine Navigationslinks anzuzeigen + - Ersetze den bestehenden HTML-Code durch eine neue, wiederverwendbare Navigationskomponente + + +## Erstelle einen neuen `src/components/`-Ordner + +Um `.astro`-Dateien aufzunehmen, die HTML generieren, aber keine neuen Seiten auf deiner Website werden, benötigst du einen neuen Ordner in deinem Projekt: `src/components/`. + + +## Erstelle eine Navigationskomponente + + +1. Erstelle eine neue Datei: `src/components/Navigation.astro`. + +2. Kopiere deine Links für die Navigation zwischen den Seiten aus dem oberen Bereich einer beliebigen Seite und füge sie in deine neue Datei `Navigation.astro` ein: + + ```astro title="src/components/Navigation.astro" "---" + --- + --- + Home + Über mich + Blog + ``` + :::tip + Wenn im Frontmatter deiner `.astro-Datei` nichts steht, musst du auch die Code-Abgrenzung nicht schreiben. Du kannst sie jederzeit wieder hinzufügen, wenn du sie brauchst. + ::: + + +### Importieren und Verwenden von Navigation.astro + + +1. Gehe zurück zu `index.astro` und importiere deine neue Komponente innerhalb der Code-Abgrenzung: + + ```astro title="src/pages/index.astro" + --- + import Navigation from '../components/Navigation.astro'; + --- + ``` + +2. Ersetze dann darunter die vorhandenen Navigations-HTML-Link-Elemente durch die neu importierte Navigationskomponente: + + ```astro title="src/pages/index.astro" del={1-3} ins={4} + Home + Über mich + Blog + + ``` + +3. Überprüfe die Vorschau in deinem Browser und stelle fest, dass sie genau gleich aussehen sollte... und das ist genau das, was du erreichen wolltest! + + +Deine Website enthält nun denselben HTML-Code wie zuvor. Aber jetzt werden diese drei Zeilen Code durch deine ``-Komponente bereitgestellt. + + + +## Probiere es selbst aus - Füge Navigation zum Rest deiner Website hinzu + +Importiere die ``-Komponente und verwende sie auf den anderen beiden Seiten deiner Website (`about.astro` und `blog.astro`) mit derselben Methode. + +Vergiss nicht, +- eine Import-Anweisung am Anfang des Komponenten-Skripts, innerhalb der Code-Abgrenzung, hinzuzufügen. +- den vorhandenen Code durch die Navigationskomponente zu ersetzen. + + + +:::note +Wenn du deinen Code umstrukturierst, aber das Aussehen deiner Seite im Browser nicht veränderst, **refaktorisierst** du. In dieser Einheit wirst du mehrmals **refaktorisieren**, indem du Teile deines Seiten-HTMLs durch Komponenten ersetzt. + +Das ermöglicht es dir, schnell mit beliebigem funktionierenden Code zu beginnen, der oft in deinem Projekt dupliziert wird. Dann kannst du das Design deines bestehenden Codes schrittweise verbessern, ohne das äußere Erscheinungsbild deiner Website zu verändern. +::: + + + + + +### Test your knowledge + + + +1. Das kannst du tun, wenn Elemente auf mehreren Seiten wiederholt werden: + + + + + + +2. Astro-Komponenten sind: + + + + + + +3. Astro-Komponenten erstellen automatisch eine neue Seite auf deiner Website, wenn du... + + + + + + + + + +## Checkliste + + +- [ ] Ich kann Inhalte in wiederverwendbare Komponenten umwandeln. +- [ ] Ich kann eine neue Komponente zu einer `.astro`-Seite hinzufügen. + + + + +### Ressourcen + +- [Mehr über Astro-Komponenten](/de/basics/astro-components/) + +- [Refactoring](https://refactoring.com/) extern