# ComponentProcessor

## Überblick

Der `ComponentProcessor` ermöglicht die Verwendung von wiederverwendbaren UI-Komponenten in Templates.

## Funktionsweise

- Findet `<component>`-Tags im DOM
- Rendert die benannte Komponente mit allen Attributen als Parameter
- Ersetzt den Tag durch das gerenderte HTML der Komponente

## Syntax

```html
<component name="komponentenName" attr1="wert1" attr2="wert2"></component>
```

## Beispiel

```html
<component name="card" title="Willkommen" image="/img/welcome.jpg">
    <p>Dies ist eine Karte mit Inhalt</p>
</component>
```

## Implementierung

Der Prozessor verwendet den `ComponentRenderer`, um die angegebene Komponente zu rendern. Alle Attribute des `<component>`-Tags (außer `name`) werden als Parameter an den Renderer übergeben und mit den Daten aus dem RenderContext zusammengeführt.

## Parameter

- **name**: (Erforderlich) Der Name der zu rendernden Komponente
- **Beliebige Attribute**: Werden als Parameter an die Komponente übergeben

## Kombination mit Slots

Der `ComponentProcessor` arbeitet gut mit dem `SlotProcessor` zusammen, um die Flexibilität von Komponenten zu erhöhen:

```html
<component name="modal" title="Bestätigung">
    <div slot="header">Benutzerdefinierter Header</div>
    <p>Hauptinhalt des Modals</p>
    <div slot="footer">
        <button>Bestätigen</button>
        <button>Abbrechen</button>
    </div>
</component>
```

## Vorteile

- Fördert die Wiederverwendung von UI-Elementen
- Verbessert die Konsistenz in der gesamten Anwendung
- Ermöglicht eine komponentenbasierte Entwicklung ähnlich wie in modernen Frontend-Frameworks
