Ga naar inhoud

Gatsby

Gatsby genereert statische HTML tijdens de build en hydrateert opnieuw aan de clientzijde. CDN-scripts moeten alleen worden geladen in browser-API’s — gatsby-browser.js is de juiste plek.

Terminal window
npm install @wink/elements

De onClientEntry API wordt één keer uitgevoerd zodra de runtime van Gatsby in de browser initialiseert:

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

Gatsby maakt alleen variabelen met de prefix GATSBY_ beschikbaar voor de browser-bundel:

.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 gebruikt React, voeg daarom dezelfde JSX intrinsic declaraties toe als bij de React-integratie:

src/wink-elements.d.ts
// Zie /integrations/react voor het volledige declaratiebestand

Je hoeft gatsby-ssr.js niet aan te passen. De <wink-*> tags renderen als gewone HTML-elementen in de statische output, en het CDN-script upgrade ze wanneer de browser de pagina laadt.