Skip to content

Remix

Remix yra pilno steko karkasas, kuris pagal numatytuosius nustatymus atlieka serverio pusės renderinimą. Įkelkite Wink CDN tik kliento pusėje naudodami useEffect pagrindiniame komponente.

Terminal window
npm install @wink/elements

useEffect vykdomas tik naršyklėje, niekada serverio pusės renderinimo metu:

app/root.tsx
import { useEffect } from 'react';
import {
Links, Meta, Outlet, Scripts, ScrollRestoration,
} from '@remix-run/react';
import { load } from '@wink/elements';
export default function App() {
useEffect(() => {
load({ clientId: import.meta.env.VITE_WINK_CLIENT_ID });
}, []);
return (
<html lang="en">
<head>
<Meta />
<Links />
</head>
<body>
<Outlet />
<ScrollRestoration />
<Scripts />
</body>
</html>
);
}

Remix (pagrįstas Vite, v2.8+) palaiko import.meta.env naršyklėje matomiems kintamiesiems. Priešdėlis VITE_ leidžia juos atskleisti naršyklės paketui:

.env
VITE_WINK_CLIENT_ID=your-client-id

Senesnėms Remix konfigūracijoms, naudojančioms Node.js adapterį, klientų ID grąžinkite iš pagrindinio loader ir perskaitykite komponente:

app/root.tsx
import { json } from '@remix-run/node';
import { useLoaderData } from '@remix-run/react';
export async function loader() {
return json({ winkClientId: process.env.WINK_CLIENT_ID });
}
export default function App() {
const { winkClientId } = useLoaderData<typeof loader>();
useEffect(() => {
if (winkClientId) {
load({ clientId: winkClientId });
}
}, [winkClientId]);
// ...
}
app/routes/hotels.tsx
export default function HotelsRoute() {
return (
<main>
<wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" />
</main>
);
}

Pridėkite JSX intrinsic deklaracijos failą iš React integracijos puslapio — Remix naudoja React po gaubtu.