React Academy · Lektion

React på Cloudflare Workers med Hono

Konfigurera en Cloudflare Worker med Hono och renderToReadableStream för att leverera React-sidor från edge.

Lektion 2 av 413 steg

React på Cloudflare Workers med Hono är en gratis lektion i React Academy på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för React Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i React Academy innehåller totalt 4 lektioner.

Vad är Hono?

Hono är ett lättviktigt och extremt snabbt webbramverk utformat för att köras i edge-runtime-miljöer, bland annat Cloudflare Workers, Deno Deploy, Bun och Node.js. API:t är inspirerat av Express men byggt från grunden för webbstandarderna (Fetch API, Request/Response), vilket gör det väl lämpat för edge-miljöer.

Skapa en Cloudflare Worker med Hono

Det är enkelt att skapa ett nytt Hono-projekt för Cloudflare Workers: npm create hono@latest ber dig välja en mall, välja "cloudflare-workers" och skapar ett projekt som redan är konfigurerat med wrangler (Cloudflares CLI) och Hono-beroendet.

Lägg till React SSR

Om du vill serverrendera React i en Hono Worker installerar du react, react-dom och @types/react och importerar sedan renderToReadableStream från react-dom/server. Funktionen ingår i React 18:s streaming-API och är utformad för miljöer som stöder Web Streams API — vilket Cloudflare Workers gör.

Honos rout-hanterare

En typisk SSR-rout-hanterare anropar renderToReadableStream med din rotkomponent i React, väntar på strömmen och använder sedan c.body(stream, { headers: { 'Content-Type': 'text/html' } }) eller c.html(htmlString) för att skicka svaret. Strömmen producerar HTML-delar som webbläsaren kan rendera stegvis.

renderToReadableStream: returtyp

renderToReadableStream returnerar ett Promise som löses till en ReadableStream med HTML-delar. Denna ReadableStream följer Web Streams API och kan skickas direkt som body i ett Response-objekt, vilket gör den idealisk för Cloudflare Workers fetch-hanterare.

Bädda in i ett HTML-skal

React-strömmen producerar HTML för komponentträdet, men inte det omgivande dokumentet. Du måste bädda in strömmen i ett HTML-skal: en sträng som innehåller doctype, head med metataggar och CSS-länken, en öppnande body-tagg — därefter React-strömmen — och sedan avslutande body- och html-taggar.

Leverera statiska resurser

Ett Vite-byggt React-klientpaket måste levereras tillsammans med Workern. Cloudflare Pages eller Workers Assets-funktionen hanterar detta: c.env.ASSETS.fetch(request) dirigerar begäranden efter resurser (JS, CSS, bilder) till de statiska filer som laddats upp med din Worker-distribution.

Ingångspunkten worker.js

Worker-filen exporterar ett standardobjekt med en fetch-hanterare: export default { fetch: app.fetch }. Hono-metoden app.fetch är redan en kompatibel fetch-hanterare som tar emot en Request och returnerar en Response, så den kan anslutas direkt till Workers runtime.

Lokal utveckling med Wrangler

wrangler dev startar en lokal utvecklingsserver som emulerar Cloudflare Workers runtime på din dator. Den bevakar filändringar och laddar om automatiskt, vilket ger ett snabbt lokalt utvecklingsflöde innan du distribuerar till produktion.

Distribuera till Cloudflare

wrangler deploy paketerar och laddar upp din Worker-kod till Cloudflares nätverk, så att den blir tillgänglig på alla 300+ edge-platser inom några sekunder. Konfigurationsfilen wrangler.toml anger ditt konto-ID, Worker-namn samt eventuella bindningar till KV-namnutrymmen eller D1-databaser.

Hydrering med bootstrapScripts

För interaktivitet på klientsidan skickar du bootstrapScripts: ['/assets/client.js'] till renderToReadableStream. React infogar en script-tagg i HTML-koden som laddar klientpaketet och anropar hydrateRoot på det serverrenderade DOM-trädet, så att sidan blir interaktiv när JavaScript-koden har laddats.

Returtypen för renderToReadableStream

Vad returnerar renderToReadableStream?

Sammanfattning av lektionen

Hono tillhandahåller ett lättviktigt, edge-anpassat HTTP-ramverk som integreras smidigt med Reacts renderToReadableStream. Worker-ingångspunkten exporterar app.fetch direkt till Workers runtime, statiska resurser levereras via ASSETS-bindningar och wrangler hanterar både lokal utveckling och produktionsdistribution. bootstrapScripts kopplar den strömmade HTML-koden till hydreringen på klientsidan.

Gratis att börja

Lär dig React med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
88
Lektioner
324

Vanliga frågor

Är lektionen ”React på Cloudflare Workers med Hono” gratis?

Ja – hela texten till ”React på Cloudflare Workers med Hono” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i React Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i React Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”React på Cloudflare Workers med Hono”?

Konfigurera en Cloudflare Worker med Hono och renderToReadableStream för att leverera React-sidor från edge. Ni övar på React Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig React Academy?

Du behöver inga förkunskaper. Utbildningen i React Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”React på Cloudflare Workers med Hono”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här React Academy-lektionen?

Ja. Varje React Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Vad är edge-rendering och varför är det viktigt
  2. React på Cloudflare Workers med Hono
  3. Strömmande SSR från edge
  4. Strategier för edge-cache av React-appar
← Tillbaka till React Academy