0Pricing
React Academy · Leçon

React sur Cloudflare Workers avec Hono

Configurez un Cloudflare Worker avec Hono et renderToReadableStream pour servir des pages React depuis la périphérie.

React sur Cloudflare Workers avec Hono est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage React Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours React Academy comprend 4 leçons au total.

Qu'est-ce que Hono ?

Hono est un cadriciel Web léger et extrêmement rapide, conçu pour s'exécuter dans des environnements en périphérie comme Cloudflare Workers, Deno Deploy, Bun et Node.js. Son interface s'inspire d'Express, mais a été conçue dès le départ pour les normes du Web (interface Fetch, Request/Response), ce qui en fait un choix naturel pour les environnements en périphérie.

Créer un Worker Cloudflare avec Hono

La création de la structure d'un nouveau projet Hono pour Cloudflare Workers est simple : npm create hono@latest vous invite à choisir un modèle, à sélectionner "cloudflare-workers", puis crée un projet préconfiguré avec wrangler (l'interface CLI de Cloudflare) et la dépendance Hono.

Ajouter le rendu React côté serveur

Pour effectuer le rendu côté serveur de React dans un Worker Hono, installez react, react-dom et @types/react, puis importez renderToReadableStream depuis react-dom/server. Cette fonction fait partie de l'interface de diffusion en flux de React 18 et est conçue pour les environnements qui prennent en charge l'interface Web Streams, ce qui est le cas de Cloudflare Workers.

Le gestionnaire de route Hono

Un gestionnaire de route SSR typique appelle renderToReadableStream avec votre composant React racine, attend le flux, puis utilise c.body(stream, { headers: { 'Content-Type': 'text/html' } }) ou c.html(htmlString) pour envoyer la réponse. Le flux produit des fragments HTML que le navigateur peut afficher progressivement.

Type de retour de renderToReadableStream

renderToReadableStream renvoie une promesse qui se résout en un ReadableStream de fragments HTML. Ce ReadableStream est conforme à l'interface Web Streams et peut être transmis directement comme corps d'un objet Response, ce qui en fait un choix idéal pour le gestionnaire fetch de Cloudflare Workers.

Envelopper le contenu dans une structure HTML

Le flux React produit le HTML de l'arbre des composants, mais pas celui du document environnant. Vous devez injecter le flux dans une structure HTML : une chaîne contenant le doctype, l'en-tête head avec les balises meta et le lien CSS, la balise body ouvrante, puis le flux React, et enfin les balises body et html fermantes.

Diffuser les ressources statiques

Un ensemble de fichiers client React construit avec Vite doit être diffusé parallèlement au Worker. Cloudflare Pages ou la fonctionnalité Workers Assets s'en charge : c.env.ASSETS.fetch(request) achemine les requêtes de ressources (JS, CSS, images) vers les fichiers statiques téléversés avec le déploiement de votre Worker.

Le point d'entrée worker.js

Le fichier d'entrée du Worker exporte un objet par défaut avec un gestionnaire fetch : export default { fetch: app.fetch }. La méthode app.fetch de Hono est déjà un gestionnaire fetch compatible qui reçoit une Request et renvoie une Response ; elle s'intègre donc directement à l'environnement d'exécution de Workers.

Développement local avec Wrangler

wrangler dev démarre un serveur de développement local qui émule l'environnement d'exécution de Cloudflare Workers sur votre machine. Il surveille les modifications des fichiers et recharge automatiquement l'application, offrant un cycle de développement local rapide avant le déploiement en production.

Déployer sur Cloudflare

wrangler deploy regroupe et téléverse votre code Worker sur le réseau de Cloudflare, le rendant disponible dans plus de 300 emplacements en périphérie en quelques secondes. Le fichier de configuration wrangler.toml indique votre ID de compte, le nom du Worker ainsi que les liaisons vers les espaces de noms KV ou les bases de données D1.

Hydratation avec bootstrapScripts

Pour ajouter de l'interactivité côté client, transmettez bootstrapScripts: ['/assets/client.js'] à renderToReadableStream. React insérera une balise script dans le HTML afin de charger l'ensemble client et d'appeler hydrateRoot sur le DOM généré côté serveur, ce qui rend la page interactive après le chargement de JS.

Type de retour de renderToReadableStream

Que renvoie renderToReadableStream ?

Récapitulatif de la leçon

Hono fournit un cadriciel HTTP léger, conçu nativement pour la périphérie, qui s'intègre parfaitement à la fonction renderToReadableStream de React. Le point d'entrée du Worker exporte directement app.fetch vers l'environnement d'exécution de Workers, les ressources statiques sont diffusées par l'intermédiaire des liaisons ASSETS et wrangler gère à la fois le développement local et le déploiement en production. bootstrapScripts relie le HTML diffusé en flux à l'ensemble d'hydratation côté client.

Questions Fréquemment Posées

La leçon « React sur Cloudflare Workers avec Hono » est-elle gratuite ?

Oui — le texte complet de « React sur Cloudflare Workers avec Hono » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours React Academy, passe à CoddyKit PRO. Le cours React Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « React sur Cloudflare Workers avec Hono » ?

Configurez un Cloudflare Worker avec Hono et renderToReadableStream pour servir des pages React depuis la périphérie. Tu pratiques React Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer React Academy ?

Aucune expérience préalable n'est requise. React Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « React sur Cloudflare Workers avec Hono » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon React Academy ?

Oui. Chaque leçon React Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Qu’est-ce que le rendu en périphérie et pourquoi est-il important
  2. React sur Cloudflare Workers avec Hono
  3. SSR en continu depuis la périphérie
  4. Stratégies de mise en cache en périphérie pour les applications React
← Retour à React Academy