XTend Dokumentation
Dunkelmodus aktivieren

XTend Developer Center

Build with XTend today

XTend Classic

XTend Classic ist der produktive HTML- und JavaScript-first-Auslieferungspfad für XTend Web Components. Ein Host behält sein direkt gepflegtes HTML, lädt das lokale components/manifest.json über xtend-loader.js und lässt den Browser die Komponenten ohne einen XTend-Application-Build registrieren.

„Kein Application-Build erforderlich“ bedeutet, dass XTend weder Maraca noch Compiler oder CLI für die Auslieferung der Seite voraussetzt. Ein Host darf weiterhin einen eigenen Bundler, TypeScript, einen lokalen Server oder optionales XTend-Tooling verwenden. Classic ist kein Legacy-Modus: Nur xtend-dev.js und der Export ./legacy-loader sind Legacy-Kompatibilitätsoberflächen.

Der Paket-Root gehört jetzt der ESM-Registry und startet Classic nicht. Package-basierte Classic-Hosts verwenden @ccslabs/xtend/loader; Script-basierte Hosts binden xtend-loader.js weiterhin explizit ein.

import '@ccslabs/xtend/loader';

Classic oder Maraca wählen

XTend ClassicXTend Maraca
HTML- und JavaScript-firstRMT- und Build-first
Runtime-Manifest mit xtend-loader.jsStatische Inline Registry in einem generierten ESM-Bundle
Kein XTend-Application-Build erforderlichPlan-, Build-, Tune- und Evidence-Pipeline
Dynamische Kataloge und Progressive EnhancementOptimierte App-Graphen, SSR/Hydration, PWA und Produktionsreports

Beide Pfade verwenden dieselben öffentlichen Web-Component-Verträge. Wähle Classic für direkt gepflegte Sites, Dokumentation, Progressive Enhancement, dynamische Komponentenkataloge oder Hosts, die ihre Runtime-Komposition bewusst selbst besitzen. Wähle XTend Maraca, wenn aus einem RMT-Dokument ein compiler-selektiertes App-Bundle mit Build-Nachweisen entstehen soll.

Minimaler Classic-Host

Lade nur die Komponenten des ersten Viewports vor. Der Loader entdeckt tiefer liegende manifestbasierte Elemente und lädt sie, sobald sie sich dem Viewport nähern.

<meta name="xtend-preload" content="xtend-state,x-theme,x-header,x-hero">
<script type="module"
  src="/xtend-loader.js"
  data-manifest="/components/manifest.json"></script>

<x-hero>
  <h1>Hello XTend Classic</h1>
</x-hero>
<x-section label="Loaded near the viewport"></x-section>

Das Manifest bleibt die vom Host kontrollierte Allowlist. Unbekannte Tags bleiben undefiniert; verweigerte Protokolle, Origins, Pfade oder Dateiendungen erzeugen explizite Loader-Diagnosen statt eines Remote-Fallbacks.

JavaScript und dynamische Inhalte

window.__XTendLoaderBootPromise macht den Abschluss des initialen Boots sichtbar. Nutze die öffentliche Loader-API, wenn JavaScript nach dem Boot eine bekannte Komponente ergänzt:

await window.__XTendLoaderBootPromise;

const region = document.querySelector('[data-dynamic-region]');
const button = document.createElement('x-button');
button.setAttribute('label', 'Continue');
region.append(button);
await window.XTendLoader.hydrateTree(region);
await customElements.whenDefined('x-button');

Bevorzuge strukturierte DOM-Operationen für nicht vertrauenswürdige oder variable Inhalte. Freie HTML-Strings benötigen weiterhin die dokumentierten Trusted-DOM- und Sanitizing-Grenzen; Classic schwächt keine Security Policy.

Optionale DEV API

Development-Hosts können denselben Loader anweisen, den nur lesenden Classic-Diagnoseadapter zu installieren:

<script type="module"
  src="/xtend-loader.js"
  data-manifest="/components/manifest.json"
  data-dev-api="true"></script>

Dadurch wird window.__XTEND_DEV_API__ ohne weiteren Script-Tag oder Monkeypatching bereitgestellt. Loader- und Browser-Performance-Messungen sind real; Fabric, RMT Kernel und SSR-Hydration melden supported: false, wenn diese Runtimes nicht aktiv sind.

Produktionscheckliste

  • Halte Loader, Manifest, Komponentenmodule, Styles und Bild-Assets same-origin oder explizit vom Host freigegeben.
  • Lade den vollständigen Komponentensatz des ersten Viewports vor und lasse Inhalte unterhalb des Viewports lazy.
  • Warte auf öffentliche Readiness-Promises, bevor du Komponentenmethoden aufrufst.
  • Teste Tastaturbedienung, Reduced Motion, Layout-Stabilität, Import-Verweigerung und fehlende optionale Fähigkeiten.
  • Aktiviere die DEV API nur für Hosts, die lokale Diagnosen exponieren sollen.
  • Nutze dokumentierte Attribute, Events, Slots, CSS Parts, Typen und Globals; privates Shadow DOM bleibt intern.

Technische Referenzen

(c) 2026 - CCS Networks | Powered by XRouter PHP Extension