0Pricing
React Academy · Lekcja

React na Cloudflare Workers z Hono

Skonfigurują Państwo Cloudflare Worker z Hono i renderToReadableStream, aby serwować strony React z brzegu sieci.

React na Cloudflare Workers z Hono to bezpłatna lekcja React Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej React Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs React Academy zawiera 4 lekcji w sumie.

Czym jest Hono

Hono to lekki, niezwykle szybki framework internetowy zaprojektowany do działania w środowiskach uruchomieniowych edge, takich jak Cloudflare Workers, Deno Deploy, Bun i Node.js. Jego API jest inspirowane Expressem, ale zostało od podstaw zbudowane zgodnie ze standardami Web (Fetch API, Request/Response), dzięki czemu naturalnie pasuje do środowisk edge.

Tworzenie Cloudflare Worker z użyciem Hono

Utworzenie szkieletu nowego projektu Hono dla Cloudflare Workers jest proste: npm create hono@latest prosi o wybranie szablonu, wybranie "cloudflare-workers" i tworzy projekt wstępnie skonfigurowany z wranglerem (interfejsem CLI Cloudflare) oraz zależnością Hono.

Dodawanie SSR Reacta

Aby renderować React po stronie serwera wewnątrz Hono Worker, należy zainstalować react, react-dom i @types/react, a następnie zaimportować renderToReadableStream z react-dom/server. Ta funkcja jest częścią interfejsu strumieniowego React 18 i została zaprojektowana dla środowisk obsługujących Web Streams API — a Cloudflare Workers takie środowiska zapewniają.

Procedura obsługi tras w Hono

Typowa procedura obsługi trasy SSR wywołuje renderToReadableStream z głównym komponentem Reacta, czeka na strumień, a następnie używa c.body(stream, { headers: { 'Content-Type': 'text/html' } }) lub c.html(htmlString), aby wysłać odpowiedź. Strumień generuje fragmenty kodu HTML, które przeglądarka może renderować stopniowo.

Typ zwracany przez renderToReadableStream

renderToReadableStream zwraca obiekt Promise, który rozwiązuje się do obiektu ReadableStream zawierającego fragmenty kodu HTML. ReadableStream jest zgodny z Web Streams API i można go przekazać bezpośrednio jako treść obiektu Response, dzięki czemu idealnie pasuje do procedury obsługi fetch w Cloudflare Workers.

Opakowywanie w powłokę HTML

Strumień Reacta generuje kod HTML drzewa komponentów, ale nie otaczający go dokument. Należy wstrzyknąć strumień do powłoki HTML: ciągu zawierającego doctype, element head z metadanymi i odwołaniem do CSS, otwierający znacznik body — następnie strumień Reacta — a na końcu zamykające znaczniki body i html.

Udostępnianie zasobów statycznych

Pakiet klienta Reacta zbudowany za pomocą Vite musi być udostępniany razem z Workerem. Obsługują to Cloudflare Pages lub funkcja Workers Assets: c.env.ASSETS.fetch(request) kieruje żądania zasobów (JS, CSS, obrazów) do plików statycznych przesłanych wraz z wdrożeniem Workera.

Punkt wejścia worker.js

Plik wejściowy Workera eksportuje domyślny obiekt z procedurą obsługi fetch: export default { fetch: app.fetch }. Metoda app.fetch Hono jest już zgodną procedurą obsługi fetch, która otrzymuje obiekt Request i zwraca obiekt Response, więc można ją bezpośrednio podłączyć do środowiska uruchomieniowego Workers.

Programowanie lokalne za pomocą Wranglera

wrangler dev uruchamia na komputerze lokalny serwer deweloperski emulujący środowisko uruchomieniowe Cloudflare Workers. Obserwuje zmiany w plikach i automatycznie przeładowuje aplikację, zapewniając szybki cykl lokalnego programowania przed wdrożeniem na produkcję.

Wdrażanie do Cloudflare

wrangler deploy pakuje i przesyła kod Workera do sieci Cloudflare, udostępniając go we wszystkich ponad 300 lokalizacjach edge w ciągu kilku sekund. Plik konfiguracyjny wrangler.toml określa identyfikator konta, nazwę Workera oraz powiązania z przestrzeniami nazw KV lub bazami danych D1.

Hydratacja z użyciem bootstrapScripts

W przypadku interaktywności po stronie klienta należy przekazać bootstrapScripts: ['/assets/client.js'] do renderToReadableStream. React wstrzyknie do kodu HTML znacznik script, który załaduje pakiet klienta i wywoła hydrateRoot na DOM wyrenderowanym po stronie serwera, nadając stronie interaktywność po załadowaniu JavaScriptu.

Typ zwracany przez renderToReadableStream

Co zwraca renderToReadableStream?

Podsumowanie lekcji

Hono zapewnia lekki, natywny dla edge framework HTTP, który dobrze integruje się z renderToReadableStream Reacta. Punkt wejścia Workera eksportuje bezpośrednio app.fetch do środowiska uruchomieniowego Workers, zasoby statyczne są udostępniane za pośrednictwem powiązań ASSETS, a wrangler obsługuje zarówno programowanie lokalne, jak i wdrażanie produkcyjne. bootstrapScripts łączy strumieniowany kod HTML z pakietem hydratacji po stronie klienta.

Często zadawane pytania

Czy lekcja „React na Cloudflare Workers z Hono” jest bezpłatna?

Tak — pełny tekst „React na Cloudflare Workers z Hono” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu React Academy, przejdź na CoddyKit PRO. Kurs React Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „React na Cloudflare Workers z Hono”?

Skonfigurują Państwo Cloudflare Worker z Hono i renderToReadableStream, aby serwować strony React z brzegu sieci. Ćwiczysz React Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć React Academy?

Nie wymagamy żadnego doświadczenia. React Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „React na Cloudflare Workers z Hono”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji React Academy?

Tak. Każda lekcja React Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Czym jest renderowanie na brzegu sieci i dlaczego ma znaczenie
  2. React na Cloudflare Workers z Hono
  3. Strumieniowanie SSR z brzegu sieci
  4. Strategie buforowania aplikacji React na brzegu sieci
← Powrót do React Academy