跳转到内容

Gatsby

Gatsby 在构建时生成静态 HTML,并在客户端进行重新激活。CDN 脚本必须仅在浏览器 API 中加载——gatsby-browser.js 是正确的位置。

Terminal window
npm install @wink/elements

onClientEntry API 会在 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,因此添加与 React 集成相同的 JSX 内置声明:

src/wink-elements.d.ts
// 详见 /integrations/react 中的完整声明文件

你无需修改 gatsby-ssr.js<wink-*> 标签在静态输出中渲染为普通 HTML 元素,CDN 脚本在浏览器加载页面时会升级它们。