{"componentChunkName":"component---src-templates-docs-js","path":"/docs/react-dom-server.html","result":{"data":{"markdownRemark":{"html":"<p>Об’єкт <code class=\"gatsby-code-text\">ReactDOMServer</code> дає змогу рендерити компоненти у статичну розмітку. Як правило, він використовується на Node сервері:</p>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\"><span class=\"token comment\">// ES modules</span>\n<span class=\"token keyword\">import</span> ReactDOMServer <span class=\"token keyword\">from</span> <span class=\"token string\">'react-dom/server'</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// CommonJS</span>\n<span class=\"token keyword\">var</span> ReactDOMServer <span class=\"token operator\">=</span> <span class=\"token function\">require</span><span class=\"token punctuation\">(</span><span class=\"token string\">'react-dom/server'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h2 id=\"overview\"><a href=\"#overview\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Огляд </h2>\n<p>Наступні методи можуть бути використані і на сервері, і у середовищах браузера:</p>\n<ul>\n<li><a href=\"#rendertostring\"><code class=\"gatsby-code-text\">renderToString()</code></a></li>\n<li><a href=\"#rendertostaticmarkup\"><code class=\"gatsby-code-text\">renderToStaticMarkup()</code></a></li>\n</ul>\n<p>А ці додаткові методи залежать від пакунку (<code class=\"gatsby-code-text\">stream</code>), який <strong>доступний тільки на сервері</strong> і не працюватиме у браузері.</p>\n<ul>\n<li><a href=\"#rendertonodestream\"><code class=\"gatsby-code-text\">renderToNodeStream()</code></a></li>\n<li><a href=\"#rendertostaticnodestream\"><code class=\"gatsby-code-text\">renderToStaticNodeStream()</code></a></li>\n</ul>\n<hr>\n<h2 id=\"reference\"><a href=\"#reference\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Довідка </h2>\n<h3 id=\"rendertostring\"><a href=\"#rendertostring\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><code class=\"gatsby-code-text\">renderToString()</code> </h3>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\">ReactDOMServer<span class=\"token punctuation\">.</span><span class=\"token function\">renderToString</span><span class=\"token punctuation\">(</span>element<span class=\"token punctuation\">)</span></code></pre></div>\n<p>Відрендерить React-елемент до початкового HTML. React поверне HTML-рядок. Цей метод можна використовувати для створення HTML на сервері та надсилання цієї розмітки на початковому запиті для більш швидкого завантаження сторінок. Це також дозволяє пошуковим системам сканувати ваші сторінки для цілей SEO.</p>\n<p>Якщо ви викликаєте <a href=\"/docs/react-dom.html#hydrate\"><code class=\"gatsby-code-text\">ReactDOM.hydrate()</code></a> на вузлі, який вже відрендерив на сервері цю розмітку, то React збереже її і додасть обробники подій, дозволяючи вам мати дуже продуктивне завантаження.</p>\n<hr>\n<h3 id=\"rendertostaticmarkup\"><a href=\"#rendertostaticmarkup\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><code class=\"gatsby-code-text\">renderToStaticMarkup()</code> </h3>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\">ReactDOMServer<span class=\"token punctuation\">.</span><span class=\"token function\">renderToStaticMarkup</span><span class=\"token punctuation\">(</span>element<span class=\"token punctuation\">)</span></code></pre></div>\n<p>Цей метод подібний до <a href=\"#rendertostring\"><code class=\"gatsby-code-text\">renderToString</code></a>, за винятком того, що він не створює додаткових атрибутів DOM, які React використовує внутрішньо, наприклад <code class=\"gatsby-code-text\">data-reactroot</code>. Це корисно, якщо ви хочете використовувати React, як генератор простих статичних сторінок, оскільки видалення атрибутів може зберегти декілька байтів.</p>\n<p>Якщо ви плануєте використовувати React на клієнтській стороні, щоб зробити розмітку інтерактивною, то не використовуйте цей метод. Замість цього використовуйте <a href=\"#rendertostring\"><code class=\"gatsby-code-text\">renderToString</code></a> на сервері та <a href=\"/docs/react-dom.html#hydrate\"><code class=\"gatsby-code-text\">ReactDOM.hydrate()</code></a> клієнті.</p>\n<hr>\n<h3 id=\"rendertonodestream\"><a href=\"#rendertonodestream\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><code class=\"gatsby-code-text\">renderToNodeStream()</code> </h3>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\">ReactDOMServer<span class=\"token punctuation\">.</span><span class=\"token function\">renderToNodeStream</span><span class=\"token punctuation\">(</span>element<span class=\"token punctuation\">)</span></code></pre></div>\n<p>Відрендерить React-елемент до початкового HTML. Потім поверне <a href=\"https://nodejs.org/api/stream.html#stream_readable_streams\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Зчитуваний потік (Readable stream)</a>, який виводить HTML-рядок. Вивід HTML цього потоку в точності дорівнює тому, що <a href=\"#rendertostring\"><code class=\"gatsby-code-text\">ReactDOMServer.renderToString</code></a> поверне. Цей метод можна використовувати для створення HTML на сервері та надсилання цієї розмітки на початковому запиті для більш швидкого завантаження сторінок. Це також дозволяє пошуковим системам сканувати ваші сторінки для цілей SEO.</p>\n<p>Якщо ви викликаєте <a href=\"/docs/react-dom.html#hydrate\"><code class=\"gatsby-code-text\">ReactDOM.hydrate()</code></a> на вузлі, який вже відрендерив на сервері цю розмітку, то React збереже її і додасть обробники подій, дозволяючи вам мати дуже продуктивне завантаження.</p>\n<blockquote>\n<p>Note:</p>\n<p>Цей API недоступний у браузерах — тільки для серверів.</p>\n<p>Потік, повернений з цього методу поверне потік байтів закодованих у utf-8. Якщо вам потрібен потік в іншому кодуванні, перегляньте проект типу <a href=\"https://www.npmjs.com/package/iconv-lite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">iconv-lite</a>, який забезпечує перетворення потоків для перекодування тексту.</p>\n</blockquote>\n<hr>\n<h3 id=\"rendertostaticnodestream\"><a href=\"#rendertostaticnodestream\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><code class=\"gatsby-code-text\">renderToStaticNodeStream()</code> </h3>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\">ReactDOMServer<span class=\"token punctuation\">.</span><span class=\"token function\">renderToStaticNodeStream</span><span class=\"token punctuation\">(</span>element<span class=\"token punctuation\">)</span></code></pre></div>\n<p>Аналогічно <a href=\"#rendertonodestream\"><code class=\"gatsby-code-text\">renderToNodeStream</code></a>, за винятком того, що він не створює додаткових атрибутів DOM, які React використовує внутрішньо, наприклад <code class=\"gatsby-code-text\">data-reactroot</code>. Це корисно, якщо ви хочете використовувати React, як генератор простих статичних сторінок, оскільки видалення атрибутів може зберегти декілька байтів.</p>\n<p>Вихідний HTML цього потоку в точності дорівнює тому, що <a href=\"#rendertostaticmarkup\"><code class=\"gatsby-code-text\">ReactDOMServer.renderToStaticMarkup</code></a> поверне.</p>\n<p>Якщо ви плануєте використовувати React на клієнтській стороні, щоб зробити розмітку інтерактивною, то не використовуйте цей метод. Замість цього використовуйте <a href=\"#rendertonodestream\"><code class=\"gatsby-code-text\">renderToNodeStream</code></a> на сервері та <a href=\"/docs/react-dom.html#hydrate\"><code class=\"gatsby-code-text\">ReactDOM.hydrate()</code></a> на клієнті.</p>\n<blockquote>\n<p>Note:</p>\n<p>Цей API недоступний у браузерах — тільки для серверів.</p>\n<p>Потік, повернений з цього методу поверне потік байтів закодованих у utf-8. Якщо вам потрібен потік в іншому кодуванні, перегляньте проект типу <a href=\"https://www.npmjs.com/package/iconv-lite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">iconv-lite</a>, який забезпечує перетворення потоків для перекодування тексту.</p>\n</blockquote>","frontmatter":{"title":"ReactDOMServer","next":null,"prev":null},"fields":{"path":"content/docs/reference-react-dom-server.md","slug":"docs/react-dom-server.html"}}},"pageContext":{"slug":"docs/react-dom-server.html"}},"staticQueryHashes":[]}