0Pricing
React Academy · Lezione

React su Cloudflare Workers con Hono

Configuri un Cloudflare Worker con Hono e renderToReadableStream per servire pagine React dall’edge.

React su Cloudflare Workers con Hono è una lezione React Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento React Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso React Academy include 4 lezioni in totale.

Che cos'è Hono

Hono è un framework web leggero e velocissimo, progettato per essere eseguito su runtime edge tra cui Cloudflare Workers, Deno Deploy, Bun e Node.js. La sua API si ispira a Express, ma è stata progettata da zero per gli standard Web (Fetch API, Request/Response), il che la rende particolarmente adatta agli ambienti edge.

Creare un Cloudflare Worker con Hono

Creare lo scheletro di un nuovo progetto Hono per Cloudflare Workers è semplice: npm create hono@latest chiede di scegliere un template, selezionare "cloudflare-workers" e crea un progetto preconfigurato con wrangler (la CLI di Cloudflare) e la dipendenza Hono.

Aggiungere il rendering SSR di React

Per eseguire il rendering server-side di React all'interno di un Worker Hono, installi react, react-dom e @types/react, quindi importi renderToReadableStream da react-dom/server. Questa funzione fa parte dell'API di streaming di React 18 ed è progettata per gli ambienti che supportano la Web Streams API, come Cloudflare Workers.

Il gestore delle route di Hono

Un tipico gestore di route SSR chiama renderToReadableStream con il componente React radice, attende lo stream e poi usa c.body(stream, { headers: { 'Content-Type': 'text/html' } }) oppure c.html(htmlString) per inviare la risposta. Lo stream produce blocchi di HTML che il browser può renderizzare progressivamente.

Tipo restituito da renderToReadableStream

renderToReadableStream restituisce una Promise che si risolve in un ReadableStream di blocchi HTML. Questo ReadableStream è conforme alla Web Streams API e può essere passato direttamente come body di un oggetto Response, rendendolo perfetto per il gestore fetch di Cloudflare Workers.

Racchiudere in uno shell HTML

Lo stream React produce l'HTML dell'albero dei componenti, ma non il documento circostante. Deve inserire lo stream in uno shell HTML: una stringa contenente il doctype, l'head con i meta tag e il collegamento al CSS, il tag body di apertura, quindi lo stream React, seguito dai tag body e html di chiusura.

Servire asset statici

Un bundle client React compilato da Vite deve essere servito insieme al Worker. Cloudflare Pages o la funzionalità Workers Assets gestisce questo aspetto: c.env.ASSETS.fetch(request) inoltra le richieste degli asset (JS, CSS, immagini) ai file statici caricati con il deployment del Worker.

Il punto di ingresso worker.js

Il file di ingresso del Worker esporta un oggetto predefinito con un gestore fetch: export default { fetch: app.fetch }. Il metodo app.fetch di Hono è già un gestore fetch compatibile che riceve una Request e restituisce una Response, quindi si integra direttamente con il runtime Workers.

Sviluppo locale con Wrangler

wrangler dev avvia un server di sviluppo locale che emula il runtime Cloudflare Workers sul computer. Monitora le modifiche ai file e ricarica automaticamente l'applicazione, offrendo un ciclo di sviluppo locale rapido prima della distribuzione in produzione.

Distribuire su Cloudflare

wrangler deploy raggruppa e carica il codice del Worker nella rete Cloudflare, rendendolo disponibile in oltre 300 località edge in pochi secondi. Il file di configurazione wrangler.toml specifica l'ID dell'account, il nome del Worker e gli eventuali binding per namespace KV o database D1.

Hydration con bootstrapScripts

Per aggiungere l'interattività lato client, passi bootstrapScripts: ['/assets/client.js'] a renderToReadableStream. React inserirà nell'HTML un tag script che carica il bundle client e chiama hydrateRoot sul DOM renderizzato dal server, rendendo interattiva la pagina dopo il caricamento di JS.

Tipo restituito da renderToReadableStream

Che cosa restituisce renderToReadableStream?

Riepilogo della lezione

Hono offre un framework HTTP leggero e nativo per l'edge, che si integra perfettamente con renderToReadableStream di React. Il punto di ingresso del Worker esporta direttamente app.fetch nel runtime Workers, gli asset statici vengono serviti tramite i binding ASSETS e wrangler gestisce sia lo sviluppo locale sia la distribuzione in produzione. bootstrapScripts collega l'HTML trasmesso in streaming al bundle di hydration lato client.

Domande Frequenti

La lezione «React su Cloudflare Workers con Hono» è gratuita?

Sì — il testo completo di «React su Cloudflare Workers con Hono» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso React Academy, passa a CoddyKit PRO. Il corso React Academy include 4 lezioni in totale.

Cosa imparerò in «React su Cloudflare Workers con Hono»?

Configuri un Cloudflare Worker con Hono e renderToReadableStream per servire pagine React dall’edge. Eserciti React Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare React Academy?

Non è richiesta alcuna esperienza precedente. React Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «React su Cloudflare Workers con Hono»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione React Academy?

Sì. Ogni lezione React Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Che cos’è l’edge rendering e perché è importante
  2. React su Cloudflare Workers con Hono
  3. SSR in streaming dall’edge
  4. Strategie di caching edge per le app React
← Torna a React Academy