{"id":54931,"date":"2024-08-28T07:00:00","date_gmt":"2024-08-28T14:00:00","guid":{"rendered":"https:\/\/dhblog.dream.press\/blog\/?p=54931"},"modified":"2025-05-26T12:23:27","modified_gmt":"2025-05-26T19:23:27","slug":"componentes-de-servidor-react","status":"publish","type":"post","link":"https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/","title":{"rendered":"Componentes de Servidor React: O Futuro do Desenvolvimento em React"},"content":{"rendered":"<p>React tem sido uma pot\u00eancia para o desenvolvimento de aplicativos web nos \u00faltimos <a href=\"https:\/\/vercel.com\/blog\/10-years-of-react\" target=\"_blank\" rel=\"noreferrer noopener\">dez anos<\/a>.<\/p>\n<p>Todos n\u00f3s vimos evoluir daquelas componentes de classe pesadas para a eleg\u00e2ncia dos hooks.<\/p>\n<p>Mas os Componentes de Servidor React (RSCs)?<\/p>\n<p>N\u00e3o achamos que algu\u00e9m esperava uma mudan\u00e7a t\u00e3o dram\u00e1tica no funcionamento do React.<\/p>\n<p>Ent\u00e3o, o que exatamente s\u00e3o Componentes de Servidor React? Como eles funcionam? E o que eles fazem de diferente que o React j\u00e1 n\u00e3o poderia fazer?<\/p>\n<p>Para responder a todas essas perguntas, vamos revisar rapidamente os fundamentos. Se voc\u00ea precisa de uma revis\u00e3o, d\u00ea uma olhada r\u00e1pida neste <a href=\"https:\/\/www.dreamhost.com\/blog\/pt\/aprender-react\/\" target=\"_blank\" rel=\"noreferrer noopener\">guia sobre como aprender React como iniciante<\/a>.<\/p>\n<p>Neste post, vamos explicar por que precis\u00e1vamos dos Componentes de Servidor React, como eles funcionam e alguns dos principais benef\u00edcios dos RSCs.<\/p>\n<p>Comece Agora!<\/p>\n<h2 id=\"h-what-are-react-server-components\" class=\"wp-block-heading\">O que s\u00e3o Componentes de Servidor React?<\/h2>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"2400\" height=\"1800\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/01_react_server_components_tree.webp\" alt=\"Diagrama em \u00e1rvore dos Componentes do Servidor React mostra a hierarquia e onde diferentes tipos de componentes s\u00e3o renderizados no aplicativo.\" class=\"wp-image-48948 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/01_react_server_components_tree.webp 2400w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/01_react_server_components_tree-300x225.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/01_react_server_components_tree-1024x768.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/01_react_server_components_tree-768x576.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/01_react_server_components_tree-1536x1152.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/01_react_server_components_tree-2048x1536.webp 2048w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/01_react_server_components_tree-600x450.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/01_react_server_components_tree-1200x900.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/01_react_server_components_tree-730x548.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/01_react_server_components_tree-1460x1095.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/01_react_server_components_tree-784x588.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/01_react_server_components_tree-1568x1176.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/01_react_server_components_tree-877x658.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/01_react_server_components_tree-1754x1316.webp 1754w\" data-sizes=\"(max-width: 2400px) 100vw, 2400px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 2400px; --smush-placeholder-aspect-ratio: 2400\/1800;\" \/><\/figure>\n<p>Pense nos Componentes de Servidor React como uma nova maneira de construir aplica\u00e7\u00f5es React. Em vez de executarem no navegador como os componentes React t\u00edpicos, os RSCs executam diretamente no seu servidor.<\/p>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\u201cEu acho que os RSCs s\u00e3o projetados para ser a &#8220;componentiza\u00e7\u00e3o&#8221; do backend, ou seja, o equivalente no backend do que o <a href=\"https:\/\/single-spa.js.org\/docs\/ecosystem-react\/\" target=\"_blank\" rel=\"noreferrer noopener\">SPA React<\/a> fez pelo frontend. Em teoria, eles poderiam eliminar em grande parte a necessidade de coisas como REST e GraphQL, levando a uma integra\u00e7\u00e3o muito mais estreita entre o servidor e o cliente, j\u00e1 que um componente poderia atravessar toda a pilha.\u201d \u2014 <a href=\"https:\/\/www.reddit.com\/r\/reactjs\/comments\/1c9yuwj\/comment\/l0ov9jw\/?utm_source=share&amp;utm_medium=web3x&amp;utm_name=web3xcss&amp;utm_term=1&amp;utm_content=share_button\" target=\"_blank\" rel=\"noreferrer noopener\">ExternalBison54 no Reddit<\/a><\/p><\/blockquote>\n<p>Como os RSCs s\u00e3o executados diretamente no servidor, eles podem acessar de maneira eficiente recursos do backend como bancos de dados e <a href=\"https:\/\/help.dreamhost.com\/hc\/en-us\/articles\/217560167-Application-programming-interface-overview\" target=\"_blank\" rel=\"noreferrer noopener\">APIs<\/a> sem uma camada adicional de busca de dados.<\/p>\n\n\n\n<div class=\"glossary-term\">\n\t<a\n\t\tclass=\"glossary-term__above-title\"\n\t\thref=\"\"\n\t\ttarget=\"_blank\"\n\t\trel=\"noopener noreferrer\"\n\t>\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 640 512\"><path d=\"M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9v28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5V291.9c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z\"\/><\/svg>\n\t\t<span><\/span>\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 384 512\"><path d=\"M342.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 256 105.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"\/><\/svg>\n\t<\/a>\n    <h3>API<\/h3>\n    <p>Uma Interface de Programa\u00e7\u00e3o de Aplica\u00e7\u00f5es (API) \u00e9 um conjunto de fun\u00e7\u00f5es que permite que aplica\u00e7\u00f5es acessem dados e interajam com componentes externos, atuando como um mensageiro entre o cliente e o servidor.<\/p>\n            <a\n            href=\"https:\/\/www.dreamhost.com\/glossary\/web-design\/api\/\"\n                        class=\"btn btn--white-outline btn--sm btn--round\"\n                                    target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            >\n                            Leia Mais                    <\/a>\n\n<\/div>\n\n<p><strong>Mas por que precis\u00e1vamos dos RSCs afinal?<\/strong><\/p>\n<p>Para responder a essa pergunta, vamos voltar um pouco.<\/p>\n<h2 id=\"h2_traditional-react-client-side-rendering-csr\" class=\"wp-block-heading\">React Tradicional: Renderiza\u00e7\u00e3o no Lado do Cliente (CSR)<\/h2>\n<p>O React sempre foi uma biblioteca de interface de usu\u00e1rio do lado do cliente.<\/p>\n<p>A ideia principal por tr\u00e1s do React \u00e9 dividir todo o seu design em unidades menores e independentes que chamamos de componentes. Esses componentes podem gerenciar seus pr\u00f3prios dados privados (<strong>state<\/strong>) e passar dados uns para os outros (<strong>props<\/strong>).<\/p>\n<p>Pense nestes componentes como <a href=\"https:\/\/www.dreamhost.com\/blog\/pt\/aprender-javascript\/\" target=\"_blank\" rel=\"noreferrer noopener\">fun\u00e7\u00f5es JavaScript<\/a> que s\u00e3o baixadas e executadas diretamente no navegador do usu\u00e1rio. Quando algu\u00e9m visita seu aplicativo, o navegador dessa pessoa baixa todo o c\u00f3digo do componente, e o React entra em a\u00e7\u00e3o para renderizar tudo:<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"2400\" height=\"1800\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/02_how_client_side_rendering_works_.webp\" alt=\"Fluxograma: Fluxo de trabalho de renderiza\u00e7\u00e3o do lado do cliente, desde a solicita\u00e7\u00e3o do usu\u00e1rio at\u00e9 o carregamento da p\u00e1gina, incluindo a resposta do servidor e o processamento do navegador.\" class=\"wp-image-48950 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/02_how_client_side_rendering_works_.webp 2400w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/02_how_client_side_rendering_works_-300x225.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/02_how_client_side_rendering_works_-1024x768.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/02_how_client_side_rendering_works_-768x576.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/02_how_client_side_rendering_works_-1536x1152.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/02_how_client_side_rendering_works_-2048x1536.webp 2048w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/02_how_client_side_rendering_works_-600x450.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/02_how_client_side_rendering_works_-1200x900.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/02_how_client_side_rendering_works_-730x548.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/02_how_client_side_rendering_works_-1460x1095.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/02_how_client_side_rendering_works_-784x588.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/02_how_client_side_rendering_works_-1568x1176.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/02_how_client_side_rendering_works_-877x658.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/02_how_client_side_rendering_works_-1754x1316.webp 1754w\" data-sizes=\"(max-width: 2400px) 100vw, 2400px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 2400px; --smush-placeholder-aspect-ratio: 2400\/1800;\" \/><\/figure>\n<ul class=\"wp-block-list\"><li>O navegador baixa o HTML, JavaScript, <a href=\"https:\/\/www.dreamhost.com\/blog\/pt\/transformacao-css\/\" target=\"_blank\" rel=\"noreferrer noopener\">CSS<\/a> e outros recursos.<\/li><li>React analisa o <a href=\"https:\/\/www.dreamhost.com\/blog\/pt\/aprender-html\/\" target=\"_blank\" rel=\"noreferrer noopener\">HTML<\/a>, configura ouvintes de eventos para intera\u00e7\u00f5es do usu\u00e1rio e recupera quaisquer dados necess\u00e1rios.<\/li><li>O site se transforma em uma aplica\u00e7\u00e3o React totalmente funcional bem diante de seus olhos e tudo \u00e9 feito pelo seu navegador e computador.<\/li><\/ul>\n<p><strong>Embora este processo funcione, ele possui algumas desvantagens:<\/strong><\/p>\n<ul class=\"wp-block-list\"><li><strong>Tempos de carregamento lentos:<\/strong> Os tempos de carregamento podem ser lentos, particularmente para aplica\u00e7\u00f5es complexas com muitos componentes, pois agora o usu\u00e1rio precisa esperar que tudo seja baixado primeiro.<\/li><li><strong>Ruim para <\/strong><a href=\"https:\/\/www.dreamhost.com\/blog\/pt\/melhorar-seo\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>otimiza\u00e7\u00e3o para motores de busca (SEO)<\/strong><\/a>: O HTML inicial \u00e9 frequentemente b\u00e1sico \u2014 apenas o suficiente para baixar o JavaScript que depois renderiza o restante do c\u00f3digo. Isso dificulta a compreens\u00e3o dos motores de busca sobre o conte\u00fado da p\u00e1gina.<\/li><li><strong>Fica mais lento conforme os aplicativos crescem:<\/strong> O processamento do lado do cliente do JavaScript pode sobrecarregar os recursos, levando a uma experi\u00eancia de usu\u00e1rio mais \u00e1spera, especialmente \u00e0 medida que voc\u00ea adiciona mais funcionalidades.<\/li><\/ul>\n\n<div class=\"article-newsletter article-newsletter--gradient\">\n\n\n<h2>Get Content Delivered Straight to Your Inbox<\/h2><p>Subscribe now to receive all the latest updates, delivered directly to your inbox.<\/p><form class=\"nwsl-form\" id=\"newsletter_block_\" novalidate><div class=\"messages\"><\/div><div class=\"form-group\"><label for=\"input_newsletter_block_\"><input type=\"email\"name=\"email\"id=\"input_newsletter_block_\"placeholder=\"Enter your email address\"novalidatedisabled=\"disabled\"\/><\/label><button type=\"submit\"class=\"btn btn--brand\"disabled=\"disabled\"><span>Sign Me Up!<\/span><svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M13.8523 0.42524L12.9323 1.34521C12.7095 1.56801 12.7132 1.9304 12.9404 2.14865L16.7241 5.7823H0.5625C0.251859 5.7823 0 6.03416 0 6.3448V7.6573C0 7.96794 0.251859 8.2198 0.5625 8.2198H16.7241L12.9405 11.8535C12.7132 12.0717 12.7095 12.4341 12.9323 12.6569L13.8523 13.5769C14.072 13.7965 14.4281 13.7965 14.6478 13.5769L20.8259 7.39879C21.0456 7.17913 21.0456 6.82298 20.8259 6.60327L14.6477 0.42524C14.4281 0.205584 14.0719 0.205584 13.8523 0.42524Z\" fill=\"white\"\/>\n<\/svg>\n<\/button><\/div><\/form><\/div>\n<h2 id=\"h2_the-next-iteration-server-side-rendering-ssr\" class=\"wp-block-heading\">A Pr\u00f3xima Itera\u00e7\u00e3o: Renderiza\u00e7\u00e3o no Lado do Servidor (SSR)<\/h2>\n<p>Para abordar os problemas causados pela renderiza\u00e7\u00e3o no lado do cliente, a comunidade React adotou a Renderiza\u00e7\u00e3o do Lado do Servidor (SSR).<\/p>\n<p>Com SSR, o servidor lida com a renderiza\u00e7\u00e3o do c\u00f3digo para HTML antes de envi\u00e1-lo.<\/p>\n<p>Este HTML completo renderizado \u00e9 ent\u00e3o transferido para o seu navegador\/celular, pronto para ser visualizado \u2014 o aplicativo n\u00e3o precisa ser <em>compilado<\/em> durante a execu\u00e7\u00e3o, como seria sem o SSR.<\/p>\n<p><strong>Veja como o SSR funciona:<\/strong><\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"2400\" height=\"1800\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/03_how_server_side_rendering_works_.webp\" alt=\"Diagrama mostrando como funciona a renderiza\u00e7\u00e3o do lado do servidor, com o navegador solicitando HTML do servidor e recebendo a p\u00e1gina totalmente renderizada.\" class=\"wp-image-48953 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/03_how_server_side_rendering_works_.webp 2400w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/03_how_server_side_rendering_works_-300x225.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/03_how_server_side_rendering_works_-1024x768.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/03_how_server_side_rendering_works_-768x576.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/03_how_server_side_rendering_works_-1536x1152.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/03_how_server_side_rendering_works_-2048x1536.webp 2048w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/03_how_server_side_rendering_works_-600x450.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/03_how_server_side_rendering_works_-1200x900.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/03_how_server_side_rendering_works_-730x548.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/03_how_server_side_rendering_works_-1460x1095.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/03_how_server_side_rendering_works_-784x588.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/03_how_server_side_rendering_works_-1568x1176.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/03_how_server_side_rendering_works_-877x658.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/03_how_server_side_rendering_works_-1754x1316.webp 1754w\" data-sizes=\"(max-width: 2400px) 100vw, 2400px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 2400px; --smush-placeholder-aspect-ratio: 2400\/1800;\" \/><\/figure>\n<ul class=\"wp-block-list\"><li>O servidor renderiza o HTML inicial para cada solicita\u00e7\u00e3o.<\/li><li>O cliente recebe uma estrutura HTML completamente formada, permitindo carregamentos iniciais de p\u00e1gina mais r\u00e1pidos.<\/li><li>O cliente ent\u00e3o baixa o React e o c\u00f3digo da sua aplica\u00e7\u00e3o, um processo chamado de \u201chidrata\u00e7\u00e3o\u201d, que torna a p\u00e1gina interativa.<\/li><\/ul>\n<p>A estrutura HTML renderizada no servidor ainda n\u00e3o possui funcionalidade.&nbsp;<\/p>\n<p>React adiciona ouvintes de eventos, configura a gest\u00e3o de estado interna e adiciona outras funcionalidades ao HTML depois de ser baixado para o seu dispositivo. Esse processo de adicionar &#8220;vida&#8221; \u00e0 p\u00e1gina \u00e9 conhecido como hidrata\u00e7\u00e3o.<\/p>\n<p>Por que o SSR funciona t\u00e3o bem?<\/p>\n<ol class=\"wp-block-list\"><li><strong>Tempos de carregamento inicial mais r\u00e1pidos<\/strong>: Os usu\u00e1rios veem o conte\u00fado quase instantaneamente porque o navegador recebe HTML totalmente formado, eliminando o tempo necess\u00e1rio para o carregamento e execu\u00e7\u00e3o do JavaScript.<\/li><li><strong>Melhoria no SEO<\/strong>: Os motores de busca rastreiam e indexam o HTML renderizado pelo servidor facilmente. Este acesso direto se traduz em uma melhor otimiza\u00e7\u00e3o de motores de busca para sua aplica\u00e7\u00e3o.<\/li><li><strong>Desempenho aprimorado em dispositivos mais lentos:<\/strong> SSR reduz a carga no dispositivo do usu\u00e1rio. O servidor assume o trabalho, tornando sua aplica\u00e7\u00e3o mais acess\u00edvel e eficiente, mesmo em conex\u00f5es mais lentas.<\/li><\/ol>\n<p>O SSR, no entanto, causou uma s\u00e9rie de problemas adicionais, exigindo uma solu\u00e7\u00e3o ainda melhor:<\/p>\n<ul class=\"wp-block-list\"><li><strong>Tempo Lento para Interativo (TTI): <\/strong>A renderiza\u00e7\u00e3o no lado do servidor e a hidrata\u00e7\u00e3o atrasam a capacidade do usu\u00e1rio de ver e interagir com o aplicativo at\u00e9 que todo o processo esteja completo.<\/li><li><strong>Carga do servidor: <\/strong>O servidor precisa realizar mais trabalho, atrasando ainda mais os tempos de resposta para <a href=\"https:\/\/www.dreamhost.com\/blog\/pt\/como-contratar-um-desenvolvedor-web\/\" target=\"_blank\" rel=\"noreferrer noopener\">aplica\u00e7\u00f5es complexas<\/a>, especialmente quando h\u00e1 muitos usu\u00e1rios simultaneamente.<\/li><li><strong>Complexidade de Configura\u00e7\u00e3o: <\/strong>Configurar e manter pode ser mais complexo, especialmente para aplica\u00e7\u00f5es grandes.<\/li><\/ul>\n<h2 id=\"h2_finally-the-react-server-components\" class=\"wp-block-heading\">Finalmente, os Componentes de Servidor React<\/h2>\n<p>Em dezembro de 2020, a equipe do React apresentou os &#8220;<a href=\"https:\/\/react.dev\/blog\/2020\/12\/21\/data-fetching-with-react-server-components\" target=\"_blank\" rel=\"noreferrer noopener\">Componentes de Servidor React de Tamanho Zero de Pacote<\/a>&#8221; ou RSCs.<\/p>\n<style>.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }<\/style><div class='embed-container'><iframe data-src='https:\/\/www.youtube.com\/embed\/TQQPAU21ZUw' frameborder='0' allowfullscreen src='data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==' class='lazyload' data-load-mode='1'><\/iframe><\/div>\n<p>Isso mudou n\u00e3o apenas como pens\u00e1vamos em construir aplicativos React, mas tamb\u00e9m como os aplicativos React funcionam nos bastidores. Os RSCs resolveram muitos problemas que t\u00ednhamos com CSR e SSR.<\/p>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\u201cCom os RSCs, o React se torna um framework totalmente do lado do servidor e tamb\u00e9m totalmente do lado do cliente, o que nunca tivemos antes. E isso permite uma integra\u00e7\u00e3o muito mais pr\u00f3xima entre o c\u00f3digo do servidor e do cliente do que era poss\u00edvel anteriormente.\u201d \u2014 <a href=\"https:\/\/www.reddit.com\/r\/reactjs\/comments\/1c9yuwj\/comment\/l0ov9jw\/?utm_source=share&amp;utm_medium=web3x&amp;utm_name=web3xcss&amp;utm_term=1&amp;utm_content=share_button\" target=\"_blank\" rel=\"noreferrer noopener\">ExternalBison54 no Reddit<\/a><\/p><\/blockquote>\n<p><strong>Vamos agora analisar os benef\u00edcios que os RSCs oferecem:<\/strong><\/p>\n<h3 class=\"wp-block-heading\">1. Tamanho do Pacote Zero<\/h3>\n<p>Os RSCs s\u00e3o renderizados inteiramente no servidor, eliminando a necessidade de enviar c\u00f3digo JavaScript para o cliente. Isso resulta em:<\/p>\n<ul class=\"wp-block-list\"><li>Tamanhos dramaticamente menores de pacotes JavaScript.<\/li><li>Carregamentos de p\u00e1gina mais r\u00e1pidos, especialmente em redes mais lentas.<\/li><li>Desempenho melhorado em dispositivos menos potentes.<\/li><\/ul>\n<p>Ao contr\u00e1rio do SSR, onde toda a \u00e1rvore de componentes React \u00e9 enviada para o cliente para hidrata\u00e7\u00e3o, os RSCs mant\u00eam o c\u00f3digo somente para servidor no servidor. Isso leva a pacotes do lado do cliente significativamente menores, como falamos, tornando suas aplica\u00e7\u00f5es mais leves e mais responsivas.<\/p>\n<h3 class=\"wp-block-heading\">2. Acesso Direto ao Backend<\/h3>\n<p>Os RSCs podem interagir diretamente com bases de dados e sistemas de arquivos sem necessidade de uma camada API.<\/p>\n<p>Como voc\u00ea pode ver no c\u00f3digo abaixo, a vari\u00e1vel <strong>cursos<\/strong> \u00e9 obtida diretamente do banco de dados, e a interface do usu\u00e1rio imprime uma lista do <strong>curso.id<\/strong> e <strong>curso.nome<\/strong> a partir do <strong>cursos.map<\/strong>:<\/p>\n<p><code>async function CourseList() {<br>&nbsp; const db = await connectToDatabase();<br>&nbsp; const courses = await db.query('SELECT * FROM courses');<br><br>&nbsp; return (<br>&nbsp; &nbsp; &lt;ul&gt;<br>&nbsp; &nbsp; &nbsp; {courses.map(course =&gt; (<br>&nbsp; &nbsp; &nbsp; &nbsp; &lt;li key={course.id}&gt;{course.name}&lt;\/li&gt;<br>&nbsp; &nbsp; &nbsp; ))}<br>&nbsp; &nbsp; &lt;\/ul&gt;<br>&nbsp; );<br>}<\/code><\/p>\n<p>Isso \u00e9 mais simples em contraste com o SSR tradicional, onde voc\u00ea precisaria configurar rotas de API separadas para buscar peda\u00e7os individuais de dados.<\/p>\n<h3 class=\"wp-block-heading\">3. Divis\u00e3o Autom\u00e1tica de C\u00f3digo<\/h3>\n<p>Com os RSCs, voc\u00ea tamb\u00e9m obt\u00e9m uma divis\u00e3o de c\u00f3digo mais granular e uma melhor organiza\u00e7\u00e3o de c\u00f3digo.<\/p>\n<p>React mant\u00e9m o c\u00f3digo apenas do servidor no servidor e garante que ele nunca seja enviado para o cliente. Os componentes do cliente s\u00e3o automaticamente identificados e enviados ao cliente para hidrata\u00e7\u00e3o.<\/p>\n<p>E o pacote geral torna-se extremamente otimizado, j\u00e1 que o cliente agora recebe exatamente o que \u00e9 necess\u00e1rio para um aplicativo totalmente funcional.<\/p>\n<p>Por outro lado, o SSR precisa de uma divis\u00e3o de c\u00f3digo manual cuidadosa para otimizar o desempenho para cada p\u00e1gina adicional.<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-4-reduced-waterfall-effect-and-streaming-rendering\">4. Efeito de Cascata Reduzido e Renderiza\u00e7\u00e3o por Streaming<\/h3>\n<p>Os Componentes de Servidor React combinam a renderiza\u00e7\u00e3o por streaming e a busca de dados em paralelo. Essa combina\u00e7\u00e3o poderosa reduz significativamente o &#8220;efeito cascata&#8221; frequentemente observado na renderiza\u00e7\u00e3o tradicional do lado do servidor.<\/p>\n<h4 class=\"wp-block-heading\">Efeito Cascata<\/h4>\n<p>O &#8220;efeito cascata&#8221; retarda o desenvolvimento web. Basicamente, ele obriga as opera\u00e7\u00f5es a se sucederem como se uma cachoeira estivesse fluindo sobre uma s\u00e9rie de rochas.<\/p>\n<p>Cada passo deve esperar que o anterior termine. Essa &#8220;espera&#8221; \u00e9 especialmente percept\u00edvel na busca de dados. Uma chamada de API deve ser conclu\u00edda antes que a pr\u00f3xima comece, causando uma desacelera\u00e7\u00e3o nos tempos de carregamento da p\u00e1gina.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"547\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/04_waterfall_effect-1024x547.webp\" alt=\"Tabela da aba Rede do Chrome mostra o efeito cascata das solicita\u00e7\u00f5es de rede, exibindo v\u00e1rias chamadas de API e seus tempos.\" class=\"wp-image-48955 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/04_waterfall_effect-1024x547.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/04_waterfall_effect-300x160.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/04_waterfall_effect-768x410.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/04_waterfall_effect-1536x820.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/04_waterfall_effect-2048x1093.webp 2048w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/04_waterfall_effect-600x320.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/04_waterfall_effect-1200x641.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/04_waterfall_effect-730x390.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/04_waterfall_effect-1460x779.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/04_waterfall_effect-784x418.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/04_waterfall_effect-1568x837.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/04_waterfall_effect-877x468.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/04_waterfall_effect-1754x936.webp 1754w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/547;\" \/><\/figure>\n<h4 class=\"wp-block-heading\">Renderiza\u00e7\u00e3o por Streaming<\/h4>\n<p>A renderiza\u00e7\u00e3o por streaming oferece uma solu\u00e7\u00e3o. Em vez de esperar que toda a p\u00e1gina seja renderizada no servidor, o servidor pode enviar peda\u00e7os da interface do usu\u00e1rio para o cliente assim que estiverem prontos.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"2400\" height=\"1691\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/05_streaming_server_rendering.webp\" alt=\"O diagrama mostra a renderiza\u00e7\u00e3o do servidor de streaming: pedidos de rede e cronograma de execu\u00e7\u00e3o do JavaScript, incluindo os marcadores FCP e TTI.\" class=\"wp-image-48957 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/05_streaming_server_rendering.webp 2400w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/05_streaming_server_rendering-300x211.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/05_streaming_server_rendering-1024x721.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/05_streaming_server_rendering-768x541.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/05_streaming_server_rendering-1536x1082.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/05_streaming_server_rendering-2048x1443.webp 2048w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/05_streaming_server_rendering-600x423.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/05_streaming_server_rendering-1200x846.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/05_streaming_server_rendering-730x514.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/05_streaming_server_rendering-1460x1029.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/05_streaming_server_rendering-784x552.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/05_streaming_server_rendering-1568x1105.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/05_streaming_server_rendering-877x618.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/05_streaming_server_rendering-1754x1236.webp 1754w\" data-sizes=\"(max-width: 2400px) 100vw, 2400px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 2400px; --smush-placeholder-aspect-ratio: 2400\/1691;\" \/><\/figure>\n<p>Os Componentes de Servidor React tornam a renderiza\u00e7\u00e3o e a busca de dados muito mais suaves. Ele cria m\u00faltiplos componentes de servidor que trabalham em paralelo evitando esse efeito cascata.<\/p>\n<p>O servidor come\u00e7a a enviar HTML para o cliente no momento em que qualquer parte da interface do usu\u00e1rio est\u00e1 pronta.<\/p>\n<p><strong>Ent\u00e3o, em compara\u00e7\u00e3o com a renderiza\u00e7\u00e3o do lado do servidor, os RSCs:<\/strong><\/p>\n<ul class=\"wp-block-list\"><li>Permita que cada componente busque seus dados de forma independente e em paralelo.<\/li><li>O servidor pode transmitir um componente assim que seus dados estiverem prontos, sem esperar que outros componentes alcancem.<\/li><li>Os usu\u00e1rios veem o conte\u00fado carregando um ap\u00f3s o outro, melhorando sua percep\u00e7\u00e3o de desempenho.<\/li><\/ul>\n<h3 class=\"wp-block-heading\">5. Intera\u00e7\u00e3o Suave com Componentes do Cliente<\/h3>\n<p>Agora, o uso de RSCs n\u00e3o implica necessariamente que voc\u00ea deve deixar de usar componentes do lado do cliente.&nbsp;<\/p>\n<p>Ambos os componentes podem coexistir e ajudar voc\u00ea a criar uma \u00f3tima experi\u00eancia geral no aplicativo.<\/p>\n<p>Pense em uma aplica\u00e7\u00e3o de e-commerce. Com SSR, toda a aplica\u00e7\u00e3o precisa ser renderizada no lado do servidor.<\/p>\n<p>Em RSCs, no entanto, voc\u00ea pode selecionar quais componentes renderizar no servidor e quais renderizar no lado do cliente.<\/p>\n<p>Por exemplo, voc\u00ea poderia usar componentes do servidor para buscar dados do produto e renderizar a p\u00e1gina inicial de listagem de produtos.<\/p>\n<p>Ent\u00e3o, componentes do cliente podem lidar com intera\u00e7\u00f5es do usu\u00e1rio como adicionar itens ao carrinho de compras ou gerenciar avalia\u00e7\u00f5es de produtos.<\/p>\n<h2 id=\"h2_should-you-add-rsc-implementation-on-your-roadmap\" class=\"wp-block-heading\">Voc\u00ea deve adicionar a implementa\u00e7\u00e3o RSC ao seu plano?<\/h2>\n<p>Nosso veredito? Os RSCs adicionam <em>muito<\/em> valor ao desenvolvimento React.<\/p>\n<p>Eles resolvem alguns dos problemas mais urgentes com as abordagens SSR e CSR: desempenho, obten\u00e7\u00e3o de dados e experi\u00eancia do desenvolvedor. <a href=\"https:\/\/www.dreamhost.com\/blog\/pt\/melhores-recursos-online-para-aprender-a-programar\/\" target=\"_blank\" rel=\"noreferrer noopener\">Para desenvolvedores que est\u00e3o come\u00e7ando a programar<\/a>, isso tornou a vida mais f\u00e1cil.<\/p>\n<p>Agora, voc\u00ea deve adicionar a implementa\u00e7\u00e3o do RSC ao seu roteiro? Vamos ter que ir com o temido \u2014 <em>depende<\/em>.<\/p>\n<p>Seu aplicativo pode estar funcionando perfeitamente sem RSCs. E neste caso, adicionar outra camada de abstra\u00e7\u00e3o pode n\u00e3o fazer muita diferen\u00e7a. No entanto, se voc\u00ea planeja escalar e acha que RSCs podem melhorar a experi\u00eancia do usu\u00e1rio para seu aplicativo, tente fazer pequenas mudan\u00e7as e escalar a partir da\u00ed.<\/p>\n<p>E se voc\u00ea precisar de um servidor poderoso para testar RSCs, ative um <a href=\"https:\/\/www.dreamhost.com\/pt\/hosting\/vps\/\" target=\"_blank\" rel=\"noreferrer noopener\">DreamHost VPS<\/a>.<\/p>\n<p>DreamHost oferece um servi\u00e7o de VPS totalmente gerenciado onde voc\u00ea pode implantar at\u00e9 seus aplicativos mais exigentes sem se preocupar com a manuten\u00e7\u00e3o do servidor.<\/p>\n\n\n<div class=\"article-cta-shared article-cta-small article-cta--product\">\n\t<div class=\"tr-img-wrap-outer jsLoading\"><img decoding=\"async\" class=\"js-img-lazy \" src=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/themes\/blog2018\/assets\/img\/lazy-loading-transparent.webp\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/product-cta-vps-hosting-877x586.webp 1x, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/product-cta-vps-hosting.webp 2x\"  alt=\"VPS Hosting\" \/><\/div>\n\n\t<a href='https:\/\/www.dreamhost.com\/hosting\/vps\/' class='link-top' target='_blank' rel='noopener noreferrer'>\n\t\t<span>VPS Hosting<\/span>\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 384 512\" width=\"15\"><path d=\"M342.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 256 105.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"\/><\/svg>\n\t<\/a>\n\n\t<div class=\"content-btm\">\n\t\t<h2 class=\"h2--md\">\n\t\t\tWhen You Expect Performance Get DreamHost VPS\n\t\t<\/h2>\n\t\t<p class=\"p--md\">\n\t\t\tBig or small, website or application &#8211; we have a VPS configuration for you.\n\t\t<\/p>\n\n\t\t        <a\n            href=\"https:\/\/www.dreamhost.com\/hosting\/vps\/\"\n                        class=\"btn btn--white-outline btn--sm btn--round\"\n                                    target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            >\n                            See More                    <\/a>\n\n\t<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Quer entender os conceitos b\u00e1sicos dos Componentes de Servidor React? Nosso guia ir\u00e1 ajud\u00e1-lo a se atualizar sobre quando adicion\u00e1-los ao seu roteiro (ou n\u00e3o).<\/p>\n","protected":false},"author":1058,"featured_media":48941,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_metadesc":"","toc_headlines":"[[\"h-what-are-react-server-components\",\"O que s\u00e3o Componentes de Servidor React?\"],[\"h2_traditional-react-client-side-rendering-csr\",\"React Tradicional: Renderiza\u00e7\u00e3o no Lado do Cliente (CSR)\"],[\"h2_the-next-iteration-server-side-rendering-ssr\",\"A Pr\u00f3xima Itera\u00e7\u00e3o: Renderiza\u00e7\u00e3o no Lado do Servidor (SSR)\"],[\"h2_finally-the-react-server-components\",\"Finalmente, os Componentes de Servidor React\"],[\"h2_should-you-add-rsc-implementation-on-your-roadmap\",\"Voc\u00ea deve adicionar a implementa\u00e7\u00e3o RSC ao seu plano?\"]]","hide_toc":false,"footnotes":""},"categories":[14387],"tags":[],"class_list":["post-54931","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-conversa-tecnica-pt"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.3 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Componentes de Servidor React: O Futuro do Desenvolvimento em React - DreamHost Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Componentes de Servidor React: O Futuro do Desenvolvimento em React\" \/>\n<meta property=\"og:description\" content=\"Quer entender os conceitos b\u00e1sicos dos Componentes de Servidor React? Nosso guia ir\u00e1 ajud\u00e1-lo a se atualizar sobre quando adicion\u00e1-los ao seu roteiro (ou n\u00e3o).\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/\" \/>\n<meta property=\"og:site_name\" content=\"DreamHost Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DreamHost\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-28T14:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-26T19:23:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/1460x1095_blog_hero_react_server_components.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"2190\" \/>\n\t<meta property=\"og:image:height\" content=\"1643\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Ian Hernandez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:site\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ian Hernandez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Componentes de Servidor React: O Futuro do Desenvolvimento em React - DreamHost Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/","og_locale":"en_US","og_type":"article","og_title":"Componentes de Servidor React: O Futuro do Desenvolvimento em React","og_description":"Quer entender os conceitos b\u00e1sicos dos Componentes de Servidor React? Nosso guia ir\u00e1 ajud\u00e1-lo a se atualizar sobre quando adicion\u00e1-los ao seu roteiro (ou n\u00e3o).","og_url":"https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/","og_site_name":"DreamHost Blog","article_publisher":"https:\/\/www.facebook.com\/DreamHost\/","article_published_time":"2024-08-28T14:00:00+00:00","article_modified_time":"2025-05-26T19:23:27+00:00","og_image":[{"width":2190,"height":1643,"url":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/1460x1095_blog_hero_react_server_components.webp","type":"image\/webp"}],"author":"Ian Hernandez","twitter_card":"summary_large_image","twitter_creator":"@dreamhost","twitter_site":"@dreamhost","twitter_misc":{"Written by":"Ian Hernandez","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/#article","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/"},"author":{"name":"Ian Hernandez","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/220faf2464d5ae08e41cf5f3b28fdc96"},"headline":"Componentes de Servidor React: O Futuro do Desenvolvimento em React","datePublished":"2024-08-28T14:00:00+00:00","dateModified":"2025-05-26T19:23:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/"},"wordCount":2020,"publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/1460x1095_blog_hero_react_server_components.webp","articleSection":["Conversa T\u00e9cnica"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/","url":"https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/","name":"Componentes de Servidor React: O Futuro do Desenvolvimento em React - DreamHost Blog","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/#primaryimage"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/1460x1095_blog_hero_react_server_components.webp","datePublished":"2024-08-28T14:00:00+00:00","dateModified":"2025-05-26T19:23:27+00:00","breadcrumb":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/#primaryimage","url":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/1460x1095_blog_hero_react_server_components.webp","contentUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/1460x1095_blog_hero_react_server_components.webp","width":2190,"height":1643,"caption":"React Server Components: The Future of React Development"},{"@type":"BreadcrumbList","@id":"https:\/\/www-dev.dreamhost.com\/blog\/pt\/componentes-de-servidor-react\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dhblog.dream.press\/blog\/"},{"@type":"ListItem","position":2,"name":"Componentes de Servidor React: O Futuro do Desenvolvimento em React"}]},{"@type":"WebSite","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website","url":"https:\/\/www-dev.dreamhost.com\/blog\/","name":"DreamHost Blog","description":"","publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www-dev.dreamhost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization","name":"DreamHost","url":"https:\/\/www-dev.dreamhost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","contentUrl":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","width":1200,"height":168,"caption":"DreamHost"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DreamHost\/","https:\/\/x.com\/dreamhost","https:\/\/www.instagram.com\/dreamhost\/","https:\/\/www.linkedin.com\/company\/dreamhost\/","https:\/\/www.youtube.com\/user\/dreamhostusa"]},{"@type":"Person","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/220faf2464d5ae08e41cf5f3b28fdc96","name":"Ian Hernandez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/04\/ian-hernandez-dreamhost-150x150.png","url":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/04\/ian-hernandez-dreamhost-150x150.png","contentUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/04\/ian-hernandez-dreamhost-150x150.png","caption":"Ian Hernandez"},"description":"Ian is a Product Designer based in Los Angeles, California. He is responsible for driving brand and product design at DreamHost, developing and maintaining our internal design system, and writing frontend code when he can. In his free time, he enjoys walking his dog, learning history, and discovering new music online and irl. Connect with him on LinkedIn: https:\/\/www.linkedin.com\/in\/ianhernandez23\/","url":"https:\/\/www-dev.dreamhost.com\/blog\/author\/ianh\/"}]}},"lang":"pt","translations":{"pt":54931,"en":48940,"es":48920,"ru":50735,"uk":54946,"de":54958,"pl":54981,"it":68387,"fr":70369,"nl":70399},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/54931","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/users\/1058"}],"replies":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/comments?post=54931"}],"version-history":[{"count":3,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/54931\/revisions"}],"predecessor-version":[{"id":59418,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/54931\/revisions\/59418"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/media\/48941"}],"wp:attachment":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/media?parent=54931"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/categories?post=54931"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/tags?post=54931"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}