{"id":70369,"date":"2024-08-28T07:00:00","date_gmt":"2024-08-28T14:00:00","guid":{"rendered":"https:\/\/dhblog.dream.press\/blog\/?p=70369"},"modified":"2025-05-26T07:40:32","modified_gmt":"2025-05-26T14:40:32","slug":"react-server-components-lavenir-du-dveloppement-react-fr","status":"publish","type":"post","link":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/","title":{"rendered":"React Server Components : L\u2019Avenir du D\u00e9veloppement React"},"content":{"rendered":"\n<p>React est une force dominante pour la cr\u00e9ation d&#8217;applications web au cours des <a href=\"https:\/\/vercel.com\/blog\/10-years-of-react\" target=\"_blank\" rel=\"noreferrer noopener\">dix derni\u00e8res ann\u00e9es<\/a>.<\/p>\n\n\n<p>Nous avons tous vu son \u00e9volution, passant de ces composants de classe encombrants \u00e0 l&#8217;\u00e9l\u00e9gance des hooks.<\/p>\n\n\n<p>Mais les composants de serveur React (RSCs) ?<\/p>\n\n\n<p>Nous ne pensons pas que quelqu&#8217;un s&#8217;attendait \u00e0 un changement aussi radical dans le fonctionnement de React.<\/p>\n\n\n<p>Alors, que sont exactement les composants serveur React ? Comment fonctionnent-ils ? Et que font-ils diff\u00e9remment que React ne pouvait pas d\u00e9j\u00e0 faire ?<\/p>\n\n\n<p>Pour r\u00e9pondre \u00e0 toutes ces questions, nous allons rapidement passer en revue les fondamentaux. Si tu as besoin de te remettre \u00e0 niveau, jette un coup d&#8217;\u0153il \u00e0 ce <a href=\"https:\/\/www.dreamhost.com\/blog\/learn-react\/\" target=\"_blank\" rel=\"noreferrer noopener\">guide pour apprendre React en tant que d\u00e9butant<\/a>.<\/p>\n\n\n<p>Dans cet article, nous allons t\u2019expliquer pourquoi nous avions besoin des composants serveur React, comment ils fonctionnent, et quelques-uns des principaux avantages des RSCs.<\/p>\n\n\n<p>Commencez maintenant!<\/p>\n\n\n<h2 id=\"h-what-are-react-server-components\" class=\"wp-block-heading\">Quels Sont Les Composants Serveur React ?<\/h2>\n\n\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=\"Diagramme arborescent des composants serveur React montrant la hi\u00e9rarchie et o\u00f9 diff\u00e9rents types de composants sont rendus dans l'application.\" 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\n\n<p>Pense \u00e0 React Server Components comme une nouvelle mani\u00e8re de construire des applications React. Au lieu de s&#8217;ex\u00e9cuter dans le navigateur comme les composants React typiques, les RSCs s&#8217;ex\u00e9cutent directement sur ton serveur.<\/p>\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u00ab Je pense que les RSC sont con\u00e7us pour \u00eatre la &#8220;composantisation&#8221; du backend, c&#8217;est-\u00e0-dire l&#8217;\u00e9quivalent backend de ce que <a href=\"https:\/\/single-spa.js.org\/docs\/ecosystem-react\/\" target=\"_blank\" rel=\"noreferrer noopener\">SPA React<\/a> a fait pour le frontend. En th\u00e9orie, ils pourraient largement \u00e9liminer le besoin de choses comme REST et GraphQL, conduisant \u00e0 une int\u00e9gration beaucoup plus serr\u00e9e entre le serveur et le client puisqu&#8217;un composant pourrait traverser toute la pile. \u00bb \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 sur Reddit<\/a><\/p>\n\n\n<\/blockquote>\n\n\n<p>Puisque les RSC s&#8217;ex\u00e9cutent directement sur le serveur, ils peuvent acc\u00e9der de mani\u00e8re efficace aux ressources backend telles que les bases de donn\u00e9es et les <a href=\"https:\/\/help.dreamhost.com\/hc\/en-us\/articles\/217560167-Application-programming-interface-overview\" target=\"_blank\" rel=\"noreferrer noopener\">APIs<\/a> sans une couche suppl\u00e9mentaire de r\u00e9cup\u00e9ration de donn\u00e9es.<\/p>\n\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>Une Interface de Programmation d\u2019Application (API) est un ensemble de fonctions permettant aux applications d&#8217;acc\u00e9der \u00e0 des donn\u00e9es et d&#8217;interagir avec des composants externes, servant de messager entre le client et le serveur.<\/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                            Lire la suite                    <\/a>\n\n<\/div>\n\n\n<p><strong>Mais pourquoi avions-nous besoin des RSC de toute fa\u00e7on ?<\/strong><\/p>\n\n\n<p>Pour r\u00e9pondre \u00e0 cette question, revenons un peu en arri\u00e8re.<\/p>\n\n\n<h2 id=\"h2_traditional-react-client-side-rendering-csr\" class=\"wp-block-heading\">React Traditionnel : Rendu C\u00f4t\u00e9 Client (CSR)<\/h2>\n\n\n<p>React a toujours \u00e9t\u00e9 une biblioth\u00e8que d&#8217;interface utilisateur c\u00f4t\u00e9 client.<\/p>\n\n\n<p>L&#8217;id\u00e9e principale derri\u00e8re React est de diviser ton design entier en unit\u00e9s plus petites et ind\u00e9pendantes que nous appelons composants. Ces composants peuvent g\u00e9rer leurs propres donn\u00e9es priv\u00e9es (<strong>\u00e9tat<\/strong>) et se transmettre des donn\u00e9es entre eux (<strong>props<\/strong>).<\/p>\n\n\n<p>Pense \u00e0 ces composants comme \u00e0 des <a href=\"https:\/\/www.dreamhost.com\/blog\/learn-javascript\/\" target=\"_blank\" rel=\"noreferrer noopener\">fonctions JavaScript<\/a> qui se t\u00e9l\u00e9chargent et s&#8217;ex\u00e9cutent directement dans le navigateur de l&#8217;utilisateur. Lorsque quelqu&#8217;un visite ton application, son navigateur t\u00e9l\u00e9charge tout le code des composants, et React intervient pour tout rendre :<\/p>\n\n\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=\"Organigramme : Flux de travail du rendu c\u00f4t\u00e9 client, de la demande de l'utilisateur au chargement de la page, incluant la r\u00e9ponse du serveur et le traitement par le navigateur.\" 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\n\n<ul class=\"wp-block-list\">\n<li>Le navigateur t\u00e9l\u00e9charge le HTML, JavaScript, <a href=\"https:\/\/www.dreamhost.com\/blog\/css-transform\/\" target=\"_blank\" rel=\"noreferrer noopener\">CSS<\/a>, et autres ressources.<\/li>\n\n\n\n<li>React analyse le <a href=\"https:\/\/www.dreamhost.com\/blog\/learn-html\/\" target=\"_blank\" rel=\"noreferrer noopener\">HTML<\/a>, configure les \u00e9couteurs d&#8217;\u00e9v\u00e9nements pour les interactions utilisateur, et r\u00e9cup\u00e8re toutes les donn\u00e9es n\u00e9cessaires.<\/li>\n\n\n\n<li>Le site web se transforme en une application React enti\u00e8rement fonctionnelle sous tes yeux et tout est r\u00e9alis\u00e9 par ton navigateur et ton ordinateur.<\/li>\n\n\n<\/ul>\n\n\n<p><strong>Bien que ce processus fonctionne, il pr\u00e9sente certains inconv\u00e9nients :<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Temps de chargement lents :<\/strong> Les temps de chargement peuvent \u00eatre lents, en particulier pour les applications complexes comportant de nombreux composants, car l&#8217;utilisateur doit maintenant attendre que tout soit t\u00e9l\u00e9charg\u00e9 en premier.<\/li>\n\n\n\n<li><strong>Mauvais pour <\/strong><a href=\"https:\/\/www.dreamhost.com\/blog\/improve-seo\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>l&#8217;optimisation pour les moteurs de recherche (SEO)<\/strong><\/a> : Le HTML initial est souvent tr\u00e8s simple \u2014 juste suffisant pour t\u00e9l\u00e9charger le JavaScript qui rend ensuite le reste du code. Cela rend difficile pour les moteurs de recherche de comprendre de quoi parle la page.<\/li>\n\n\n\n<li><strong>Deviens plus lent \u00e0 mesure que les applications grandissent : <\/strong>Le traitement c\u00f4t\u00e9 client du JavaScript peut solliciter les ressources, conduisant \u00e0 une exp\u00e9rience utilisateur plus difficile, surtout lorsque vous ajoutez plus de fonctionnalit\u00e9s.<\/li>\n\n\n<\/ul>\n\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\n<h2 id=\"h2_the-next-iteration-server-side-rendering-ssr\" class=\"wp-block-heading\">La Prochaine It\u00e9ration : Le Rendu C\u00f4t\u00e9 Serveur (SSR)<\/h2>\n\n\n<p>Pour r\u00e9soudre les probl\u00e8mes caus\u00e9s par le rendu c\u00f4t\u00e9 client, la communaut\u00e9 React a adopt\u00e9 le rendu c\u00f4t\u00e9 serveur (SSR).<\/p>\n\n\n<p>Avec le SSR, le serveur g\u00e8re le rendu du code en HTML avant de l&#8217;envoyer.<\/p>\n\n\n<p>Ce HTML complet et rendu est ensuite transf\u00e9r\u00e9 \u00e0 ton navigateur\/mobile, pr\u00eat \u00e0 \u00eatre consult\u00e9 \u2014 l&#8217;application n&#8217;a pas besoin d&#8217;\u00eatre <em>compil\u00e9e<\/em> pendant l&#8217;ex\u00e9cution comme elle le serait sans SSR.<\/p>\n\n\n<p><strong>Voici comment fonctionne le SSR :<\/strong><\/p>\n\n\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=\"Diagramme montrant comment fonctionne le rendu c\u00f4t\u00e9 serveur, avec le navigateur demandant le HTML au serveur et recevant une page enti\u00e8rement rendue.\" 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\n\n<ul class=\"wp-block-list\">\n<li>Le serveur g\u00e9n\u00e8re le HTML initial pour chaque requ\u00eate.<\/li>\n\n\n\n<li>Le client re\u00e7oit une structure HTML compl\u00e8tement form\u00e9e, permettant des chargements de page initiaux plus rapides.<\/li>\n\n\n\n<li>Le client t\u00e9l\u00e9charge ensuite React et le code de votre application, un processus appel\u00e9 \u00ab hydration \u00bb, qui rend la page interactive.<\/li>\n\n\n<\/ul>\n\n\n<p>La structure HTML rendue sur le serveur n&#8217;a pas encore de fonctionnalit\u00e9.&nbsp;<\/p>\n\n\n<p>React ajoute des \u00e9couteurs d&#8217;\u00e9v\u00e9nements, configure la gestion de l&#8217;\u00e9tat interne et ajoute d&#8217;autres fonctionnalit\u00e9s au HTML apr\u00e8s son t\u00e9l\u00e9chargement sur ton appareil. Ce processus d&#8217;ajout de \u00ab vie \u00bb \u00e0 la page est connu sous le nom d&#8217;hydratation.<\/p>\n\n\n<p>Pourquoi SSR fonctionne-t-il si bien ?<\/p>\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Temps de Chargement Initial Plus Rapide<\/strong> : Les utilisateurs voient le contenu presque instantan\u00e9ment car le navigateur re\u00e7oit un HTML compl\u00e8tement form\u00e9, \u00e9liminant le temps n\u00e9cessaire pour que le JavaScript se charge et s&#8217;ex\u00e9cute.<\/li>\n\n\n\n<li><strong>Am\u00e9lioration du SEO<\/strong> : Les moteurs de recherche parcourent et indexent facilement l&#8217;HTML rendu par le serveur. Cet acc\u00e8s direct se traduit par une meilleure optimisation pour les moteurs de recherche de votre application.<\/li>\n\n\n\n<li><strong>Performance Am\u00e9lior\u00e9e Sur Les Appareils Plus Lents :<\/strong> Le SSR all\u00e8ge la charge sur l&#8217;appareil de l&#8217;utilisateur. Le serveur prend en charge le travail, rendant votre application plus accessible et performante, m\u00eame avec des connexions plus lentes.<\/li>\n\n\n<\/ol>\n\n\n<p>SSR, cependant, a engendr\u00e9 un certain nombre de probl\u00e8mes suppl\u00e9mentaires, n\u00e9cessitant une solution encore meilleure :<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Temps Lent Jusqu&#8217;\u00e0 l&#8217;Interactivit\u00e9 (TTI) : <\/strong>Le rendu c\u00f4t\u00e9 serveur et l&#8217;hydratation retardent la capacit\u00e9 de l&#8217;utilisateur \u00e0 voir et interagir avec l&#8217;appli jusqu&#8217;\u00e0 ce que tout le processus soit termin\u00e9.<\/li>\n\n\n\n<li><strong>Charge du serveur : <\/strong>Le serveur doit fournir plus d&#8217;efforts, ralentissant ainsi davantage les temps de r\u00e9ponse pour <a href=\"https:\/\/www.dreamhost.com\/blog\/how-to-hire-web-developer\/\" target=\"_blank\" rel=\"noreferrer noopener\">applications complexes<\/a>, surtout lorsqu&#8217;il y a de nombreux utilisateurs en simultan\u00e9.<\/li>\n\n\n\n<li><strong>Complexit\u00e9 de configuration : <\/strong>Configurer et maintenir peut \u00eatre plus complexe, surtout pour les grandes applications.<\/li>\n\n\n<\/ul>\n\n\n<h2 id=\"h2_finally-the-react-server-components\" class=\"wp-block-heading\">Enfin, les Composants Serveur React<\/h2>\n\n\n<p>En d\u00e9cembre 2020, l&#8217;\u00e9quipe React a introduit les \u00ab <a href=\"https:\/\/react.dev\/blog\/2020\/12\/21\/data-fetching-with-react-server-components\" target=\"_blank\" rel=\"noreferrer noopener\">Composants Serveur React de Taille de Bundle Nulle<\/a> \u00bb ou RSCs.<\/p>\n\n\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\n\n<p>Cela a chang\u00e9 non seulement notre fa\u00e7on de penser la construction des applications React, mais aussi le fonctionnement des applications React en backend. Les RSC ont r\u00e9solu de nombreux probl\u00e8mes que nous avions avec les CSR et les SSR.<\/p>\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u00ab Avec les RSC, React devient \u00e0 la fois un framework enti\u00e8rement c\u00f4t\u00e9 serveur et un framework enti\u00e8rement c\u00f4t\u00e9 client, ce que nous n&#8217;avions jamais eu auparavant. Et cela permet une int\u00e9gration beaucoup plus \u00e9troite entre le code serveur et le code client qu&#8217;il n&#8217;\u00e9tait jamais possible auparavant. \u00bb \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 sur Reddit<\/a><\/p>\n\n\n<\/blockquote>\n\n\n<p><strong>Examinons maintenant les avantages que les RSC apportent :<\/strong><\/p>\n\n\n<h3 class=\"wp-block-heading\">1. Taille de Bundle Z\u00e9ro<\/h3>\n\n\n<p>Les RSC sont rendus enti\u00e8rement sur le serveur, \u00e9liminant le besoin d&#8217;envoyer du code JavaScript au client. Cela entra\u00eene :<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Tailles de bundles JavaScript consid\u00e9rablement r\u00e9duites.<\/li>\n\n\n\n<li>Chargements de page plus rapides, particuli\u00e8rement sur des r\u00e9seaux plus lents.<\/li>\n\n\n\n<li>Performances am\u00e9lior\u00e9es sur des appareils moins puissants.<\/li>\n\n\n<\/ul>\n\n\n<p>Contrairement au SSR, o\u00f9 l&#8217;ensemble de l&#8217;arborescence des composants React est envoy\u00e9 au client pour l&#8217;hydratation, les RSC gardent le code exclusivement serveur sur le serveur. Cela conduit \u00e0 ces paquets c\u00f4t\u00e9 client nettement plus petits dont nous avons parl\u00e9, rendant vos applications plus l\u00e9g\u00e8res et plus r\u00e9actives.<\/p>\n\n\n<h3 class=\"wp-block-heading\">2. Acc\u00e8s Direct Au Backend<\/h3>\n\n\n<p>Les RSC peuvent interagir directement avec les bases de donn\u00e9es et les syst\u00e8mes de fichiers sans n\u00e9cessiter une couche API.<\/p>\n\n\n<p>Comme tu peux le voir dans le code ci-dessous, la variable <strong>courses<\/strong> est r\u00e9cup\u00e9r\u00e9e directement de la base de donn\u00e9es, et l&#8217;interface utilisateur affiche une liste des <strong>course.id<\/strong> et <strong>course.name<\/strong> \u00e0 partir du <strong>courses.map<\/strong> :<\/p>\n\n\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\n\n<p>Ceci est plus simple en contraste avec le SSR traditionnel o\u00f9 tu devrais configurer des routes API s\u00e9par\u00e9es pour r\u00e9cup\u00e9rer des morceaux de donn\u00e9es individuels.<\/p>\n\n\n<h3 class=\"wp-block-heading\">3. Fractionnement Automatique du Code<\/h3>\n\n\n<p>Avec les RSCs, tu obtiens \u00e9galement un fractionnement du code plus granulaire et une meilleure organisation du code.<\/p>\n\n\n<p>React conserve le code exclusivement serveur sur le serveur et assure qu&#8217;il ne soit jamais envoy\u00e9 au client. Les composants client sont automatiquement identifi\u00e9s et envoy\u00e9s au client pour l&#8217;hydratation.<\/p>\n\n\n<p>Et l&#8217;ensemble global devient extr\u00eamement optimis\u00e9 puisque le client re\u00e7oit maintenant exactement ce qui est n\u00e9cessaire pour une application pleinement fonctionnelle.<\/p>\n\n\n<p>D&#8217;un autre c\u00f4t\u00e9, SSR n\u00e9cessite un fractionnement manuel soign\u00e9 du code pour optimiser les performances pour chaque page suppl\u00e9mentaire.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-4-reduced-waterfall-effect-and-streaming-rendering\">4. Effet Cascade R\u00e9duit et Rendu en Streaming<\/h3>\n\n\n<p>Les composants serveur React combinent le rendu en flux continu et la r\u00e9cup\u00e9ration de donn\u00e9es en parall\u00e8le. Cette combinaison puissante r\u00e9duit consid\u00e9rablement l&#8217;effet &#8220;cascade&#8221; souvent observ\u00e9 dans le rendu c\u00f4t\u00e9 serveur traditionnel.<\/p>\n\n\n<h4 class=\"wp-block-heading\">Effet Cascade<\/h4>\n\n\n<p>L&#8217;\u00ab effet cascade \u00bb ralentit le d\u00e9veloppement web. En gros, il oblige les op\u00e9rations \u00e0 se suivre les unes les autres comme si une cascade coulait sur une s\u00e9rie de rochers.<\/p>\n\n\n<p>Chaque \u00e9tape doit attendre que la pr\u00e9c\u00e9dente soit termin\u00e9e. Cette &#8220;attente&#8221; est particuli\u00e8rement perceptible lors de la r\u00e9cup\u00e9ration des donn\u00e9es. Un appel API doit \u00eatre termin\u00e9 avant que le suivant ne commence, ce qui ralentit les temps de chargement des pages.<\/p>\n\n\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=\"Un tableau de l'onglet R\u00e9seau de Chrome montre l'effet de cascade des requ\u00eates r\u00e9seau, pr\u00e9sentant divers appels API et leur chronologie.\" 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\n\n<h4 class=\"wp-block-heading\">Rendu en Streaming<\/h4>\n\n\n<p>Le rendu en streaming offre une solution. Au lieu d&#8217;attendre que la page enti\u00e8re soit rendue sur le serveur, le serveur peut envoyer des morceaux de l&#8217;interface utilisateur au client d\u00e8s qu&#8217;ils sont pr\u00eats.<\/p>\n\n\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=\"Le diagramme montre le rendu du serveur de streaming : requ\u00eates r\u00e9seau et chronologie d\u2019ex\u00e9cution JavaScript, y compris les marqueurs FCP et 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\n\n<p>Les composants serveur React rendent le rendu et la r\u00e9cup\u00e9ration des donn\u00e9es beaucoup plus fluides. Il cr\u00e9e plusieurs composants serveur qui fonctionnent en parall\u00e8le pour \u00e9viter cet effet cascade.<\/p>\n\n\n<p>Le serveur commence \u00e0 envoyer le HTML au client d\u00e8s qu&#8217;un \u00e9l\u00e9ment de l&#8217;interface utilisateur est pr\u00eat.<\/p>\n\n\n<p><strong>Alors, compar\u00e9s au rendu c\u00f4t\u00e9 serveur, les RSCs :<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Permet \u00e0 chaque composant de r\u00e9cup\u00e9rer ses donn\u00e9es ind\u00e9pendamment et en parall\u00e8le.<\/li>\n\n\n\n<li>Le serveur peut diffuser un composant d\u00e8s que ses donn\u00e9es sont pr\u00eates, sans attendre que les autres composants soient \u00e0 jour.<\/li>\n\n\n\n<li>Les utilisateurs voient le contenu se charger l&#8217;un apr\u00e8s l&#8217;autre, am\u00e9liorant leur perception de la performance.<\/li>\n\n\n<\/ul>\n\n\n<h3 class=\"wp-block-heading\">5. Interaction Douce Avec Les Composants Client<\/h3>\n\n\n<p>Maintenant, utiliser des RSCs n&#8217;implique pas n\u00e9cessairement que tu dois \u00e9viter d&#8217;utiliser des composants c\u00f4t\u00e9 client.&nbsp;<\/p>\n\n\n<p>Les deux composants peuvent coexister et t&#8217;aider \u00e0 cr\u00e9er une excellente exp\u00e9rience globale de l&#8217;application.<\/p>\n\n\n<p>Pense \u00e0 une application e-commerce. Avec SSR, toute l&#8217;application doit \u00eatre rendue c\u00f4t\u00e9 serveur.<\/p>\n\n\n<p>Dans les RSCs, cependant, tu peux choisir quels composants rendre sur le serveur et lesquels rendre du c\u00f4t\u00e9 client.<\/p>\n\n\n<p>Par exemple, tu pourrais utiliser des composants de serveur pour r\u00e9cup\u00e9rer les donn\u00e9es des produits et rendre la page de liste des produits initiale.<\/p>\n\n\n<p>Ensuite, les composants client peuvent g\u00e9rer les interactions utilisateur comme l&#8217;ajout d&#8217;articles dans un panier d&#8217;achat ou la gestion des avis sur les produits.<\/p>\n\n\n<h2 id=\"h2_should-you-add-rsc-implementation-on-your-roadmap\" class=\"wp-block-heading\">Devrais-Tu Ajouter L&#8217;Impl\u00e9mentation RSC \u00c0 Ta Feuille De Route ?<\/h2>\n\n\n<p>Notre verdict ? Les RSC apportent <em>beaucoup<\/em> de valeur au d\u00e9veloppement React.<\/p>\n\n\n<p>Ils r\u00e9solvent certains des probl\u00e8mes les plus urgents avec les approches SSR et CSR : performance, r\u00e9cup\u00e9ration de donn\u00e9es, et exp\u00e9rience d\u00e9veloppeur. <a href=\"https:\/\/www.dreamhost.com\/blog\/best-online-resources-learn-to-code\/\" target=\"_blank\" rel=\"noreferrer noopener\">Pour les d\u00e9veloppeurs qui commencent tout juste \u00e0 coder<\/a>, cela a rendu la vie plus facile.<\/p>\n\n\n<p>Maintenant, devrais-tu ajouter l&#8217;impl\u00e9mentation RSC \u00e0 ton plan de route ? Nous devrons opter pour le redout\u00e9 \u2014 <em>cela d\u00e9pend<\/em>.<\/p>\n\n\n<p>Ton appli peut fonctionner parfaitement bien sans RSCs. Et dans ce cas, ajouter une autre couche d&#8217;abstraction peut ne pas apporter grand-chose. Cependant, si tu pr\u00e9vois de d\u00e9velopper l&#8217;\u00e9chelle, et penses que les RSCs peuvent am\u00e9liorer l&#8217;exp\u00e9rience utilisateur pour ton appli, essaie de faire de petits changements et de d\u00e9velopper \u00e0 partir de l\u00e0.<\/p>\n\n\n<p>Et si tu as besoin d&#8217;un serveur puissant pour tester des RSCs, lance un <a href=\"https:\/\/www.dreamhost.com\/hosting\/vps\/\" target=\"_blank\" rel=\"noreferrer noopener\">DreamHost VPS<\/a>.<\/p>\n\n\n<p>DreamHost propose un service VPS enti\u00e8rement g\u00e9r\u00e9 o\u00f9 tu peux d\u00e9ployer tes applications les plus exigeantes sans te soucier de la maintenance du serveur.<\/p>\n\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>Veux-Tu Comprendre Les Bases Des Composants Serveur React ?<br \/>\nNotre guide te permettra de te mettre \u00e0 jour sur le moment d&#8217;ajouter ces composants \u00e0 ta feuille de route (ou pas).<\/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":"Tu veux comprendre les bases des composants de serveur React ? Notre guide te mettra \u00e0 jour sur le moment o\u00f9 les ajouter \u00e0 ta feuille de route (ou non).","toc_headlines":"[[\"h-what-are-react-server-components\",\"Quels Sont Les Composants Serveur React ?\"],[\"h2_traditional-react-client-side-rendering-csr\",\"React Traditionnel : Rendu C\u00f4t\u00e9 Client (CSR)\"],[\"h2_the-next-iteration-server-side-rendering-ssr\",\"La Prochaine It\u00e9ration : Le Rendu C\u00f4t\u00e9 Serveur (SSR)\"],[\"h2_finally-the-react-server-components\",\"Enfin, les Composants Serveur React\"],[\"h2_should-you-add-rsc-implementation-on-your-roadmap\",\"Devrais-Tu Ajouter L'Impl\u00e9mentation RSC \u00c0 Ta Feuille De Route ?\"]]","hide_toc":false,"footnotes":""},"categories":[14989],"tags":[],"class_list":["post-70369","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech-talk-fr"],"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>React Server Components : L\u2019Avenir du D\u00e9veloppement React - DreamHost Blog<\/title>\n<meta name=\"description\" content=\"Tu veux comprendre les bases des composants de serveur React ? Notre guide te mettra \u00e0 jour sur le moment o\u00f9 les ajouter \u00e0 ta feuille de route (ou non).\" \/>\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\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"React Server Components : L\u2019Avenir du D\u00e9veloppement React\" \/>\n<meta property=\"og:description\" content=\"Tu veux comprendre les bases des composants de serveur React ? Notre guide te mettra \u00e0 jour sur le moment o\u00f9 les ajouter \u00e0 ta feuille de route (ou non).\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www-dev.dreamhost.com\/blog\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/\" \/>\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-26T14:40:32+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=\"11 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"React Server Components : L\u2019Avenir du D\u00e9veloppement React - DreamHost Blog","description":"Tu veux comprendre les bases des composants de serveur React ? Notre guide te mettra \u00e0 jour sur le moment o\u00f9 les ajouter \u00e0 ta feuille de route (ou non).","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\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/","og_locale":"en_US","og_type":"article","og_title":"React Server Components : L\u2019Avenir du D\u00e9veloppement React","og_description":"Tu veux comprendre les bases des composants de serveur React ? Notre guide te mettra \u00e0 jour sur le moment o\u00f9 les ajouter \u00e0 ta feuille de route (ou non).","og_url":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/","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-26T14:40:32+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":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/#article","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/"},"author":{"name":"Ian Hernandez","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/220faf2464d5ae08e41cf5f3b28fdc96"},"headline":"React Server Components : L\u2019Avenir du D\u00e9veloppement React","datePublished":"2024-08-28T14:00:00+00:00","dateModified":"2025-05-26T14:40:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/"},"wordCount":2131,"publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/08\/1460x1095_blog_hero_react_server_components.webp","articleSection":["Tech Talk"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/","url":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/","name":"React Server Components : L\u2019Avenir du D\u00e9veloppement React - DreamHost Blog","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/#primaryimage"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/#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-26T14:40:32+00:00","description":"Tu veux comprendre les bases des composants de serveur React ? Notre guide te mettra \u00e0 jour sur le moment o\u00f9 les ajouter \u00e0 ta feuille de route (ou non).","breadcrumb":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www-dev.dreamhost.com\/blog\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/#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\/fr\/react-server-components-lavenir-du-dveloppement-react-fr\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dhblog.dream.press\/blog\/"},{"@type":"ListItem","position":2,"name":"React Server Components : L\u2019Avenir du D\u00e9veloppement 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":"fr","translations":{"fr":70369,"en":48940,"es":48920,"ru":50735,"pt":54931,"uk":54946,"de":54958,"pl":54981,"it":68387,"nl":70399},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/70369","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=70369"}],"version-history":[{"count":2,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/70369\/revisions"}],"predecessor-version":[{"id":70373,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/70369\/revisions\/70373"}],"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=70369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/categories?post=70369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/tags?post=70369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}