Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
6eb9f7d
i18n(de): translate 0-introduction/index to German (#7734)
josefineschaefer Apr 4, 2024
34bae56
i18n(de): add 1-setup to german blog tutorial (#7602)
josefineschaefer Apr 4, 2024
fbf98d2
i18n(de): add `tutorial/3-components/index` (#7795)
Maxframe Apr 9, 2024
00841cd
i18n(de): add `tutorial/3-components/1` (#7796)
Maxframe Apr 11, 2024
5c184bb
Add missing fragment
yanthomasdev Apr 15, 2024
56763fa
Merge branch 'main' into de/tutorial
yanthomasdev Apr 17, 2024
49e91dd
i18n(de): add `tutorial/3-components/3` (#7975)
Maxframe Apr 23, 2024
4503baf
i18n(de): add `tutorial/3-components/2` (#7885)
Maxframe May 15, 2024
e23730c
Merge branch 'main' into de/tutorial
yanthomasdev Jun 8, 2024
b040220
i18n(de): add `tutorial/3-components/4` (#8365)
Maxframe Jun 8, 2024
be0c774
Merge branch 'main' into de/tutorial
delucis Jul 13, 2024
d126213
Merge branch 'main' into de/tutorial
louisescher Oct 5, 2025
7d9e81a
chore: Remove partial translations in preparation for new ones
louisescher Oct 5, 2025
0251115
Update src/content/docs/de/tutorial/3-components/4.mdx
louisescher Oct 5, 2025
eb6b8d3
Update src/content/docs/de/tutorial/3-components/4.mdx
louisescher Oct 5, 2025
e5e8bd2
Apply suggestion from @randomguy-2650
louisescher Oct 5, 2025
ea446f0
Apply suggestion from @randomguy-2650
louisescher Oct 5, 2025
105e265
Apply suggestion from @randomguy-2650
louisescher Oct 5, 2025
10e3171
Apply suggestion from @randomguy-2650
louisescher Oct 5, 2025
ad860e9
Apply suggestion from @randomguy-2650
louisescher Oct 5, 2025
3d23ea7
Apply suggestion from @randomguy-2650
louisescher Oct 5, 2025
d598ea6
Apply suggestion from @randomguy-2650
louisescher Oct 5, 2025
2699a30
Apply suggestion from @randomguy-2650
louisescher Oct 5, 2025
4485e15
Apply suggestion from @randomguy-2650
louisescher Oct 5, 2025
994ec2a
Apply suggestion from @randomguy-2650
louisescher Oct 5, 2025
883797d
Apply suggestion from @randomguy-2650
louisescher Oct 5, 2025
97c64aa
Apply suggestion from @randomguy-2650
louisescher Oct 5, 2025
5dc8f11
Apply suggestion from @randomguy-2650
louisescher Oct 5, 2025
b543ad6
Update src/content/docs/de/tutorial/3-components/4.mdx
louisescher Oct 5, 2025
6c9be41
Update src/content/docs/de/tutorial/3-components/4.mdx
louisescher Oct 5, 2025
e179e6c
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
62479a5
Update src/content/docs/de/tutorial/3-components/1.mdx
louisescher Oct 5, 2025
d900679
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
b8b25ad
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
a3330d0
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
58ea258
Update src/content/docs/de/tutorial/3-components/4.mdx
louisescher Oct 5, 2025
330ffe9
Update src/content/docs/de/tutorial/3-components/1.mdx
louisescher Oct 5, 2025
bf07125
Update src/content/docs/de/tutorial/3-components/4.mdx
louisescher Oct 5, 2025
566fc4c
Update src/content/docs/de/tutorial/3-components/index.mdx
louisescher Oct 5, 2025
793bf10
Update src/content/docs/de/tutorial/3-components/index.mdx
louisescher Oct 5, 2025
7894985
Update src/content/docs/de/tutorial/3-components/index.mdx
louisescher Oct 5, 2025
3fc47f5
Update src/content/docs/de/tutorial/3-components/1.mdx
louisescher Oct 5, 2025
7eb9d2a
Update src/content/docs/de/tutorial/3-components/1.mdx
louisescher Oct 5, 2025
f7acb88
Update src/content/docs/de/tutorial/3-components/1.mdx
louisescher Oct 5, 2025
d17d5ec
Update src/content/docs/de/tutorial/3-components/1.mdx
louisescher Oct 5, 2025
de45193
Update src/content/docs/de/tutorial/3-components/1.mdx
louisescher Oct 5, 2025
4390bac
Update src/content/docs/de/tutorial/3-components/2.mdx
louisescher Oct 5, 2025
555ab68
Update src/content/docs/de/tutorial/3-components/2.mdx
louisescher Oct 5, 2025
7baad00
Update src/content/docs/de/tutorial/3-components/2.mdx
louisescher Oct 5, 2025
a538812
Update src/content/docs/de/tutorial/3-components/2.mdx
louisescher Oct 5, 2025
3eb0cc5
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
f7c5d01
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
ac81d57
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
9f95691
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
0ff7fdb
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
35cea00
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
70f0bb0
Update src/content/docs/de/tutorial/3-components/4.mdx
louisescher Oct 5, 2025
8a5dae9
Update src/content/docs/de/tutorial/3-components/4.mdx
louisescher Oct 5, 2025
5879616
Update src/content/docs/de/tutorial/3-components/4.mdx
louisescher Oct 5, 2025
afe342c
Update src/content/docs/de/tutorial/3-components/index.mdx
louisescher Oct 5, 2025
b199ad2
Update src/content/docs/de/tutorial/3-components/index.mdx
louisescher Oct 5, 2025
6c09a3c
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
3d6f1f8
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
27f257f
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
53cafeb
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
92d4d4c
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
03ebe4d
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
db72b4d
Update src/content/docs/de/tutorial/3-components/3.mdx
louisescher Oct 5, 2025
55f9d47
i18n(de): update section 3 blog tutorial (#12515)
trueberryless Oct 8, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 0 additions & 59 deletions src/content/docs/de/tutorial/0-introduction/1.mdx

This file was deleted.

156 changes: 156 additions & 0 deletions src/content/docs/de/tutorial/3-components/1.mdx
Original file line number Diff line number Diff line change
@@ -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!

<PreCheck>
- 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
</PreCheck>

## 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

<Steps>
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" "---"
---
---
<a href="/">Home</a>
<a href="/about/">Über mich</a>
<a href="/blog/">Blog</a>
```
:::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.
:::
</Steps>

### Importieren und Verwenden von Navigation.astro

<Steps>
1. Gehe zurück zu `index.astro` und importiere deine neue Komponente innerhalb der Code-Abgrenzung:

```astro title="src/pages/index.astro" ins={2}
import "../styles/global.css";

const pageTitle = "Home Page";
---
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}
<a href="/">Home</a>
<a href="/about/">Über mich</a>
<a href="/blog/">Blog</a>
<Navigation />
```

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!
</Steps>

Deine Website enthält nun denselben HTML-Code wie zuvor. Aber jetzt werden diese drei Zeilen Code durch deine `<Navigation />`-Komponente bereitgestellt.

<Box icon="puzzle-piece">

## Probiere es selbst aus - Füge Navigation zum Rest deiner Website hinzu

Importiere die `<Navigation />`-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.

</Box>

:::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.
:::


<Box icon="question-mark">

### Teste dein Wissen


1. Das kannst du tun, wenn Elemente auf mehreren Seiten wiederholt werden:
<MultipleChoice>
<Option>
den Entwicklungs-Server neu starten
</Option>
<Option isCorrect>
Refaktorisierung, um eine wiederverwendbare Komponente zu nutzen
</Option>
<Option>
eine neue Seite erstellen
</Option>
</MultipleChoice>

2. Astro-Komponenten sind:
<MultipleChoice>
<Option>
wiederverwendbar
</Option>
<Option>
Fragmente von HTML
</Option>
<Option isCorrect>
beides!
</Option>
</MultipleChoice>

3. Astro-Komponenten erstellen automatisch eine neue Seite auf deiner Website, wenn du …
<MultipleChoice>
<Option>
`<html></html>` einfügst
</Option>
<Option>
refaktorisierst
</Option>
<Option isCorrect>
die `.astro`-Datei innerhalb von `src/pages/` ablegst
</Option>
</MultipleChoice>
</Box>

<Box icon="check-list">

## Checkliste

<Checklist>
- [ ] Ich kann Inhalte in wiederverwendbare Komponenten umwandeln.
- [ ] Ich kann eine neue Komponente zu einer `.astro`-Seite hinzufügen.
</Checklist>

</Box>

### Ressourcen

- [Mehr über Astro-Komponenten](/de/basics/astro-components/)

- [Refactoring](https://refactoring.com/) <Badge class="neutral-badge" text="extern" />
Loading