Перейти к содержимому

Gatsby

Gatsby генерирует статический HTML во время сборки и восстанавливает его на клиенте. Скрипты CDN должны загружаться только в браузерных API — gatsby-browser.js — правильное место для этого.

Окно терминала
npm install @wink/elements

API onClientEntry запускается один раз, как только инициализируется runtime Gatsby в браузере:

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

Gatsby передаёт в браузерный бандл только переменные, начинающиеся с префикса 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 использует React, поэтому добавьте те же JSX intrinsic декларации, что и в интеграции React:

src/wink-elements.d.ts
// См. /integrations/react для полного файла деклараций

Вам не нужно изменять gatsby-ssr.js. Теги <wink-*> рендерятся как обычные HTML-элементы в статическом выводе, а скрипт CDN обновляет их при загрузке страницы в браузере.