Hono ile Cloudflare Workers'ta React
React sayfalarını kenardan sunmak için Hono ve renderToReadableStream kullanarak bir Cloudflare Worker kurun.
Hono ile Cloudflare Workers'ta React, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.
Hono Nedir?
Hono, Cloudflare Workers, Deno Deploy, Bun ve Node.js dahil uç çalışma zamanlarında çalışmak üzere tasarlanmış, hafif ve son derece hızlı bir web çerçevesidir. API'si Express'ten esinlenmiştir; ancak Web Standartları (Fetch API, Request/Response) temel alınarak sıfırdan oluşturulmuştur. Bu da onu uç ortamları için doğal bir seçenek haline getirir.
Hono ile Cloudflare Worker Oluşturma
Cloudflare Workers için yeni bir Hono projesi oluşturmak kolaydır: npm create hono@latest komutu bir şablon seçmenizi ister, "cloudflare-workers" seçeneğini belirlemenizi sağlar ve wrangler (Cloudflare'ın CLI'sı) ile Hono bağımlılığı önceden yapılandırılmış bir proje oluşturur.
React SSR Ekleme
React'i bir Hono Worker'ı içinde sunucu tarafında oluşturmak için react, react-dom ve @types/react paketlerini yükleyin, ardından react-dom/server içinden renderToReadableStream'i içe aktarın. Bu işlev React 18'in akış API'sinin bir parçasıdır ve Web Streams API'sini destekleyen ortamlar için tasarlanmıştır; Cloudflare Workers da bunu destekler.
Hono Rota İşleyicisi
Tipik bir SSR rota işleyicisi, renderToReadableStream'i kök React bileşeninizle çağırır, akışın tamamlanmasını bekler ve ardından yanıtı göndermek için c.body(stream, { headers: { 'Content-Type': 'text/html' } }) veya c.html(htmlString) kullanır. Akış, tarayıcının aşamalı olarak oluşturabileceği HTML parçaları üretir.
renderToReadableStream: Dönüş Türü
renderToReadableStream, HTML parçalarından oluşan bir ReadableStream'e çözümlenen bir Promise döndürür. Bu ReadableStream, Web Streams API'sine uyar ve bir Response nesnesinin gövdesi olarak doğrudan geçirilebilir; bu da onu Cloudflare Workers fetch işleyicisi için ideal hale getirir.
HTML Kabuğuyla Sarmalama
React akışı bileşen ağacının HTML'sini üretir, ancak çevreleyen belgeyi üretmez. Akışı bir HTML kabuğuna eklemelisiniz: belge türü bildirimini, meta etiketlerini ve CSS bağlantısını içeren head, açılış body etiketi — ardından React akışı — sonra kapanış body ve html etiketleri.
Statik Varlıkları Sunma
Vite ile oluşturulmuş bir React istemci paketi Worker ile birlikte sunulmalıdır. Cloudflare Pages veya Workers Assets özelliği bunu ele alır: c.env.ASSETS.fetch(request), varlık isteklerini (JS, CSS, görseller) Worker dağıtımınızla yüklenen statik dosyalara yönlendirir.
worker.js Giriş Noktası
Worker giriş dosyası, bir fetch işleyicisine sahip varsayılan bir nesne dışa aktarır: export default { fetch: app.fetch }. Hono'nun app.fetch yöntemi, bir Request alan ve bir Response döndüren uyumlu bir fetch işleyicisidir; bu nedenle doğrudan Workers çalışma zamanına bağlanır.
Wrangler ile Yerel Geliştirme
wrangler dev, makinenizde Cloudflare Workers çalışma zamanını taklit eden yerel bir geliştirme sunucusu başlatır. Dosya değişikliklerini izler ve otomatik olarak yeniden yükler; böylece üretime dağıtımdan önce hızlı bir yerel geliştirme döngüsü sağlar.
Cloudflare'a Dağıtma
wrangler deploy, Worker kodunuzu paketleyip Cloudflare ağına yükleyerek kodu 300'den fazla uç konumun tamamında saniyeler içinde kullanıma açar. wrangler.toml yapılandırma dosyası hesap ID'nizi, Worker adını ve tüm KV ad alanı veya D1 veritabanı bağlantılarını belirtir.
bootstrapScripts ile Hidratasyon
İstemci tarafı etkileşimi için renderToReadableStream'e bootstrapScripts: ['/assets/client.js'] geçirin. React, istemci paketini yükleyen ve JS yüklendikten sonra sunucu tarafından oluşturulmuş DOM üzerinde hydrateRoot'u çağıran bir betik etiketi HTML'ye ekler; böylece sayfa etkileşimli hale gelir.
renderToReadableStream Dönüş Türü
renderToReadableStream ne döndürür?
Ders Özeti
Hono, React'in renderToReadableStream işleviyle sorunsuz biçimde bütünleşen hafif ve uç odaklı bir HTTP çerçevesi sunar. Worker giriş noktası app.fetch'i doğrudan Workers çalışma zamanına dışa aktarır, statik varlıklar ASSETS bağlantıları üzerinden sunulur ve wrangler hem yerel geliştirmeyi hem de üretime dağıtımı yönetir. bootstrapScripts, akışla gönderilen HTML'yi istemci tarafı hidratasyon paketiyle bağlar.
Sıkça Sorulan Sorular
“Hono ile Cloudflare Workers'ta React” dersi ücretsiz mi?
Evet — “Hono ile Cloudflare Workers'ta React” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.
“Hono ile Cloudflare Workers'ta React” dersinde ne öğreneceğim?
React sayfalarını kenardan sunmak için Hono ve renderToReadableStream kullanarak bir Cloudflare Worker kurun. React Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
React Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te React Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Hono ile Cloudflare Workers'ta React” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu React Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her React Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Kenar Görüntüleme Nedir ve Neden Önemlidir
- Hono ile Cloudflare Workers'ta React
- Kenar Üzerinden Akışlı SSR
- React Uygulamaları için Kenar Önbellekleme Stratejileri