React op Cloudflare Workers met Hono
Stel een Cloudflare Worker met Hono en renderToReadableStream in om React-pagina's vanaf de edge te serveren.
React op Cloudflare Workers met Hono is een gratis React Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject React Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus React Academy bevat in totaal 4 lessen.
Wat is Hono
Hono is een lichtgewicht, razendsnel webframework dat is ontworpen voor edge-runtimes zoals Cloudflare Workers, Deno Deploy, Bun en Node.js. De API is geïnspireerd op Express, maar vanaf de basis gebouwd voor webstandaarden (Fetch API, Request/Response), waardoor Hono goed past in edge-omgevingen.
Een Cloudflare Worker met Hono maken
Een nieuw Hono-project voor Cloudflare Workers opzetten is eenvoudig: npm create hono@latest vraagt je een sjabloon te kiezen, "cloudflare-workers" te selecteren en maakt een project dat vooraf is geconfigureerd met wrangler (de CLI van Cloudflare) en de Hono-afhankelijkheid.
React-SSR toevoegen
Om React binnen een Hono Worker server-side te renderen, installeer je react, react-dom en @types/react en importeer je renderToReadableStream uit react-dom/server. Deze functie maakt deel uit van de streaming-API van React 18 en is ontworpen voor omgevingen die de Web Streams API ondersteunen — en dat doen Cloudflare Workers.
De routehandler van Hono
Een typische SSR-routehandler roept renderToReadableStream aan met je root-React-component, wacht op de stream en gebruikt vervolgens c.body(stream, { headers: { 'Content-Type': 'text/html' } }) of c.html(htmlString) om het antwoord te verzenden. De stream produceert HTML-fragmenten die de browser geleidelijk kan weergeven.
renderToReadableStream: retourtype
renderToReadableStream geeft een Promise terug die wordt opgelost met een ReadableStream van HTML-fragmenten. Deze ReadableStream voldoet aan de Web Streams API en kan rechtstreeks worden doorgegeven als de hoofdtekst van een Response-object, waardoor de functie perfect past bij de fetch-handler van Cloudflare Workers.
In een HTML-omhulsel verpakken
De React-stream produceert de HTML van de componentenboom, maar niet het omringende document. Je moet de stream invoegen in een HTML-omhulsel: een tekenreeks met de doctype, de head met metatags en de CSS-link, de openende body-tag — daarna de React-stream — en vervolgens de sluitende body- en html-tags.
Statische assets aanbieden
Een door Vite gebouwde React-clientbundel moet naast de Worker worden aangeboden. Cloudflare Pages of de functie Workers Assets handelt dit af: c.env.ASSETS.fetch(request) routeert aanvragen voor assets (JS, CSS en afbeeldingen) naar de statische bestanden die met je Worker-implementatie zijn geüpload.
Het ingangspunt worker.js
Het ingangsbestand van de Worker exporteert een standaardobject met een fetch-handler: export default { fetch: app.fetch }. De methode app.fetch van Hono is al een compatibele fetch-handler die een Request ontvangt en een Response teruggeeft, zodat die rechtstreeks op de runtime van Workers kan worden aangesloten.
Lokaal ontwikkelen met Wrangler
wrangler dev start een lokale ontwikkelserver die de runtime van Cloudflare Workers op je computer nabootst. De server houdt wijzigingen in bestanden bij en laadt automatisch opnieuw, zodat je snel lokaal kunt ontwikkelen voordat je naar productie uitrolt.
Uitrollen naar Cloudflare
wrangler deploy bundelt je Worker-code en uploadt die naar het netwerk van Cloudflare, zodat de code binnen enkele seconden actief is op meer dan 300 edge-locaties. Het configuratiebestand wrangler.toml specificeert je account-ID, de naam van de Worker en eventuele bindingen voor een KV-naamruimte of D1-database.
Hydration met bootstrapScripts
Geef voor interactiviteit aan de clientzijde bootstrapScripts: ['/assets/client.js'] door aan renderToReadableStream. React voegt een script-tag toe aan de HTML die de clientbundel laadt en hydrateRoot aanroept op de server-gerenderde DOM, zodat de pagina interactief wordt nadat JavaScript is geladen.
Retourtype van renderToReadableStream
Wat geeft renderToReadableStream terug?
Samenvatting van de les
Hono biedt een lichtgewicht HTTP-framework voor edge-omgevingen dat goed samenwerkt met Reacts renderToReadableStream. Het ingangspunt van de Worker exporteert app.fetch rechtstreeks naar de runtime van Workers, statische assets worden aangeboden via ASSETS-bindingen en wrangler verzorgt zowel lokale ontwikkeling als uitrol naar productie. bootstrapScripts verbindt de gestreamde HTML met de hydrationbundel aan de clientzijde.
Leer React met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 88
- Lessen
- 324
Veelgestelde vragen
Is de les “React op Cloudflare Workers met Hono” gratis?
Ja — de volledige tekst van “React op Cloudflare Workers met Hono” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus React Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus React Academy bevat in totaal 4 lessen.
Wat leer ik in “React op Cloudflare Workers met Hono”?
Stel een Cloudflare Worker met Hono en renderToReadableStream in om React-pagina's vanaf de edge te serveren. Je oefent met React Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met React Academy te beginnen?
Ervaring vooraf is niet nodig. React Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “React op Cloudflare Workers met Hono”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over React Academy?
Ja. Elke les over React Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Wat is edge rendering en waarom is het belangrijk
- React op Cloudflare Workers met Hono
- Streaming-SSR vanaf de edge
- Edge-cachingstrategieën voor React-apps