Zum Inhalt springen

Gatsby

Gatsby generiert statisches HTML zur Build-Zeit und rehydriert im Client. CDN-Skripte müssen nur in Browser-APIs geladen werden — gatsby-browser.js ist der richtige Ort dafür.

Terminal-Fenster
npm install @wink/elements

Die onClientEntry API wird einmal ausgeführt, sobald das Gatsby-Runtime im Browser initialisiert wird:

gatsby-browser.js
import { load } from '@wink/elements';
export function onClientEntry() {
load({ clientId: process.env.GATSBY_WINK_CLIENT_ID });
}

Gatsby stellt nur Variablen mit dem Präfix GATSBY_ dem Browser-Bundle zur Verfügung:

.env.production
GATSBY_WINK_CLIENT_ID=your-client-id
.env.development
GATSBY_WINK_CLIENT_ID=your-client-id
src/pages/hotels.tsx
import React from 'react';
export default function HotelsPage() {
return (
<main>
<wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" />
<wink-lookup />
</main>
);
}

Gatsby verwendet React, daher fügen Sie dieselben JSX-Intrinsic-Deklarationen wie bei der React-Integration hinzu:

src/wink-elements.d.ts
// Siehe /integrations/react für die vollständige Deklarationsdatei

Sie müssen gatsby-ssr.js nicht ändern. Die <wink-*> Tags werden im statischen Output als einfache HTML-Elemente gerendert, und das CDN-Skript aktualisiert sie, wenn der Browser die Seite lädt.