Salta ai contenuti

Gatsby

Gatsby genera HTML statico al momento della build e lo reidrata sul client. Gli script CDN devono essere caricati solo nelle API del browser — gatsby-browser.js è il posto giusto.

Terminal window
npm install @wink/elements

L’API onClientEntry viene eseguita una volta non appena il runtime di Gatsby si inizializza nel browser:

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

Gatsby espone al bundle del browser solo le variabili con prefisso GATSBY_:

.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 usa React, quindi aggiungi le stesse dichiarazioni JSX intrinseche dell’integrazione React:

src/wink-elements.d.ts
// Vedi /integrations/react per il file di dichiarazione completo

Non è necessario modificare gatsby-ssr.js. I tag <wink-*> vengono renderizzati come normali elementi HTML nell’output statico, e lo script CDN li aggiorna quando il browser carica la pagina.