0Pricing
React Academy · Aula

React no Cloudflare Workers com Hono

Configure um Worker do Cloudflare com Hono e renderToReadableStream para servir páginas React a partir da borda.

React no Cloudflare Workers com Hono é uma aula grátis de React Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de React Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Academy inclui 4 aulas no total.

O que é Hono

Hono é uma estrutura web leve e ultrarrápida, projetada para ser executada em ambientes de execução na borda, incluindo Cloudflare Workers, Deno Deploy, Bun e Node.js. Sua API é inspirada no Express, mas foi criada desde o início para os padrões da Web (Fetch API, Request/Response), o que a torna uma escolha natural para ambientes de borda.

Criando um Cloudflare Worker com Hono

Criar a estrutura de um novo projeto Hono para Cloudflare Workers é simples: npm create hono@latest solicita que você escolha um modelo, selecione "cloudflare-workers" e cria um projeto pré-configurado com wrangler (a CLI da Cloudflare) e a dependência Hono.

Adicionando SSR do React

Para renderizar React no servidor dentro de um Worker Hono, instale react, react-dom e @types/react; depois, importe renderToReadableStream de react-dom/server. Essa função faz parte da API de transmissão em fluxo do React 18 e foi projetada para ambientes compatíveis com a API de fluxos da Web — como o Cloudflare Workers.

O manipulador de rotas do Hono

Um manipulador de rotas SSR típico chama renderToReadableStream com seu componente React raiz, aguarda o fluxo e então usa c.body(stream, { headers: { 'Content-Type': 'text/html' } }) ou c.html(htmlString) para enviar a resposta. O fluxo produz blocos de HTML que o navegador pode renderizar progressivamente.

Tipo de retorno de renderToReadableStream

renderToReadableStream retorna uma promessa que é resolvida com um ReadableStream de blocos de HTML. Esse ReadableStream está em conformidade com a API de fluxos da Web e pode ser passado diretamente como o corpo de um objeto Response, sendo ideal para o manipulador fetch do Cloudflare Workers.

Envolvendo o conteúdo em um esqueleto HTML

O fluxo React produz o HTML da árvore de componentes, mas não o documento ao redor. Você precisa inserir o fluxo em um esqueleto HTML: uma string contendo a declaração do tipo de documento, o cabeçalho com metatags e o link CSS, a tag de abertura do corpo — depois o fluxo React — e, por fim, as tags de fechamento do corpo e do HTML.

Fornecendo recursos estáticos

Um pacote cliente React criado com Vite precisa ser fornecido junto com o Worker. O Cloudflare Pages ou o recurso Assets dos Workers cuida disso: c.env.ASSETS.fetch(request) encaminha as solicitações de recursos (JS, CSS e imagens) para os arquivos estáticos enviados com a implantação do Worker.

O ponto de entrada worker.js

O arquivo de entrada do Worker exporta um objeto padrão com um manipulador fetch: export default { fetch: app.fetch }. O método app.fetch do Hono já é um manipulador fetch compatível, que recebe uma Request e retorna uma Response, portanto ele se conecta diretamente ao ambiente de execução do Workers.

Desenvolvimento local com Wrangler

wrangler dev inicia um servidor de desenvolvimento local que emula o ambiente de execução do Cloudflare Workers em sua máquina. Ele observa alterações nos arquivos e recarrega automaticamente, proporcionando um ciclo rápido de desenvolvimento local antes da implantação em produção.

Implantando na Cloudflare

wrangler deploy empacota e envia seu código do Worker para a rede da Cloudflare, disponibilizando-o em mais de 300 locais de borda em poucos segundos. O arquivo de configuração wrangler.toml especifica o ID da sua conta, o nome do Worker e quaisquer vinculações a namespaces KV ou bancos de dados D1.

Hidratação com bootstrapScripts

Para adicionar interatividade no cliente, passe bootstrapScripts: ['/assets/client.js'] a renderToReadableStream. React inserirá uma tag de script no HTML que carrega o pacote cliente e chama hydrateRoot no DOM renderizado no servidor, tornando a página interativa depois que o JS for carregado.

Tipo de retorno de renderToReadableStream

O que renderToReadableStream retorna?

Resumo da lição

Hono fornece uma estrutura HTTP leve e nativa da borda que se integra perfeitamente a renderToReadableStream do React. O ponto de entrada do Worker exporta app.fetch diretamente para o ambiente de execução do Workers, os recursos estáticos são fornecidos por meio das vinculações ASSETS e o wrangler cuida tanto do desenvolvimento local quanto da implantação em produção. bootstrapScripts conecta o HTML transmitido em fluxo ao pacote de hidratação no cliente.

Perguntas Frequentes

A aula “React no Cloudflare Workers com Hono” é grátis?

Sim — o texto completo de “React no Cloudflare Workers com Hono” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de React Academy, atualize para CoddyKit PRO. O curso de React Academy inclui 4 aulas no total.

O que vou aprender em “React no Cloudflare Workers com Hono”?

Configure um Worker do Cloudflare com Hono e renderToReadableStream para servir páginas React a partir da borda. Você pratica React Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar React Academy?

Nenhuma experiência prévia é necessária. React Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “React no Cloudflare Workers com Hono”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de React Academy?

Sim. Cada aula de React Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O que é renderização na borda e por que é importante
  2. React no Cloudflare Workers com Hono
  3. SSR com transmissão a partir da borda
  4. Estratégias de cache na borda para aplicações React
← Voltar para React Academy