{"componentChunkName":"component---src-templates-docs-js","path":"/docs/react-dom.html","result":{"data":{"markdownRemark":{"html":"<p>Якщо ви завантажуєте React з тегу <code class=\"gatsby-code-text\">&lt;script&gt;</code>, то API верхнього рівня доступні в глобальному об’єкті <code class=\"gatsby-code-text\">ReactDOM</code>. Якщо ви використовуєте ES6 разом із npm, ви можете написати <code class=\"gatsby-code-text\">import ReactDOM from &#39;react-dom&#39;</code>, якщо ES5 — <code class=\"gatsby-code-text\">var ReactDOM = require(&#39;react-dom&#39;)</code>.</p>\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>Пакет <code class=\"gatsby-code-text\">react-dom</code> надає специфічні для DOM методи, що можуть використовуватись на верхньому рівні вашого додатку, а також як запасний спосіб аби вийти з React моделі, якщо це необхідно. У більшості ваших компонентів вам не потрібно використовувати цей модуль.</p>\n<ul>\n<li><a href=\"#render\"><code class=\"gatsby-code-text\">render()</code></a></li>\n<li><a href=\"#hydrate\"><code class=\"gatsby-code-text\">hydrate()</code></a></li>\n<li><a href=\"#unmountcomponentatnode\"><code class=\"gatsby-code-text\">unmountComponentAtNode()</code></a></li>\n<li><a href=\"#finddomnode\"><code class=\"gatsby-code-text\">findDOMNode()</code></a></li>\n<li><a href=\"#createportal\"><code class=\"gatsby-code-text\">createPortal()</code></a></li>\n</ul>\n<h3 id=\"browser-support\"><a href=\"#browser-support\" 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>Підтримка браузерів </h3>\n<p>React підтримує всі популярні браузери, в тому числі Internet Explorer 9 і вище, хоча <a href=\"/docs/javascript-environment-requirements.html\">деякі поліфіли необхідні</a> для старіших браузерів, таких як IE 9 та IE 10.</p>\n<blockquote>\n<p>Примітка</p>\n<p>Ми не підтримуємо старі версії браузерів, які не підтримують методи ES5, але ви можете помітити, що ваш додаток працює і в них, якщо у вашу сторінку включено такі поліфіли, як <a href=\"https://github.com/es-shims/es5-shim\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">es5-shim та es5-sham</a> включені в сторінку. Це тільки ваш вибір, якщо ви вирішити піти цим шляхом.</p>\n</blockquote>\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=\"render\"><a href=\"#render\" 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\">render()</code> </h3>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\">ReactDOM<span class=\"token punctuation\">.</span><span class=\"token function\">render</span><span class=\"token punctuation\">(</span>element<span class=\"token punctuation\">,</span> container<span class=\"token punctuation\">[</span><span class=\"token punctuation\">,</span> callback<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span></code></pre></div>\n<p>Рендерить React-елемент у наданий <code class=\"gatsby-code-text\">container</code> у DOM-і і повертає <a href=\"/docs/more-about-refs.html\">реф</a> на компонент (або повертає <code class=\"gatsby-code-text\">null</code> для <a href=\"/docs/components-and-props.html#function-and-class-components\">компонентів без стану</a>).</p>\n<p>Якщо React-елемент був попередньо відрендерений у <code class=\"gatsby-code-text\">container</code>, цей метод виконає його оновлення і змінить DOM за необхідністю, щоб відобразити останній варіант React-елемента.</p>\n<p>Якщо надано функцію зворотнього виклику, вона буде виконана після того, як компонент відрендериться або оновиться.</p>\n<blockquote>\n<p>Примітка:</p>\n<p><code class=\"gatsby-code-text\">ReactDOM.render()</code> контролює вміст вузла контейнера, який ви передаєте. Будь-який наявний DOM-елемент всередині буде замінено під час першого виклику. Наступні виклики використовують React-овий алгоритм різниці DOM-ів для ефективних оновлень.</p>\n<p><code class=\"gatsby-code-text\">ReactDOM.render()</code> не модифікує вузол контейнера (тільки модифікує нащадків). Також можливо вставити компонент у наявний DOM-вузол без перезапису наявних нащадків.</p>\n<p><code class=\"gatsby-code-text\">ReactDOM.render()</code> наразі повертає посилання на кореневий екземпляр <code class=\"gatsby-code-text\">ReactComponent</code>. Однак використання значення, що повертається, є застарілим\nі його потрібно уникати, оскільки майбутні версії React можуть рендерити компоненти асинхронно в деяких випадках. Якщо вам потрібне посилання на корінь екземпляра <code class=\"gatsby-code-text\">ReactComponent</code> кращим рішенням буде приєднати\n<a href=\"/docs/more-about-refs.html#the-ref-callback-attribute\">реф зворотнього виклику</a> до кореневого елементу.</p>\n<p>Використання <code class=\"gatsby-code-text\">ReactDOM.render()</code> для гідратації відрендерених сервером контейнерів застаріле і буде видалено в React 17. Натомість використовуйте <a href=\"#hydrate\"><code class=\"gatsby-code-text\">hydrate()</code></a>.</p>\n</blockquote>\n<hr>\n<h3 id=\"hydrate\"><a href=\"#hydrate\" 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\">hydrate()</code> </h3>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\">ReactDOM<span class=\"token punctuation\">.</span><span class=\"token function\">hydrate</span><span class=\"token punctuation\">(</span>element<span class=\"token punctuation\">,</span> container<span class=\"token punctuation\">[</span><span class=\"token punctuation\">,</span> callback<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span></code></pre></div>\n<p>Такий же як <a href=\"#render\"><code class=\"gatsby-code-text\">render()</code></a>, але використовується для гідратації контейнеру, HTML-вміст якого був відрендерений за допомогою <a href=\"/docs/react-dom-server.html\"><code class=\"gatsby-code-text\">ReactDOMServer</code></a>. React буде намагатись приєднати слухачі подій до наявної розмітки.</p>\n<p>React очікує, що відрендерений вміст ідентичний між сервером та клієнтом. Він може виправляти різницю в текстовому вмісті, але ви повинні трактувати незбіжності як дефекти та виправити їх. У режимі розробника React попереджає про незбіжності під час гідратації. Немає гарантії, що відмінності атрибутів будуть виправлені у випадку незбіжностей. Це важливо з точки зору продуктивності, оскільки в багатьох додатках невідповідності трапляються рідко, тому проведення валідації всієї розмітки буде надзвичайно трудомістким.</p>\n<p>Якщо єдиний атрибут елементу чи текстовий вміст відрізняється між сервером та клієнтом (для прикладу, мітка часу), ви можете відключити попередження, додавши <code class=\"gatsby-code-text\">suppressHydrationWarning={true}</code> до елементу. Це працює тільки на першому рівні глибини і покликане бути запасним варіантом. Не зловживайте ним. За винятком текстового вмісту, React все ж не буде намагатись виправити його, тому він може залишитись різним до наступних оновлень.</p>\n<p>Якщо вам потрібно відрендерити щось, що відрізняється на сервері та клієнті, ви можете зробити двопрохідний рендеринг. Компоненти, в яких є відмінності в рендерингу на клієнті, можуть читати змінну стану, наприклад, <code class=\"gatsby-code-text\">this.state.isClient</code>, якій ви можете присвоїти <code class=\"gatsby-code-text\">true</code> в <code class=\"gatsby-code-text\">componentDidMount()</code>. Початковий прохід рендеру відрендерить той же вміст, що і на сервері, таким чином уникнувши незбіжностей, а додатковий прохід відбудеться синхронно відразу після гідратації. Зауважте, що такий спосіб зробить компоненти повільнішими, оскільки вони будуть рендеритись двічі, тому використовуйте його обережно.</p>\n<p>Пам’ятайте про те, що користувачу має бути комфортно працювати при повільному з’єднанні. JavaScript-код може завантажитись набагато пізніше, ніж початковий HTML-рендер, тому якщо ви рендерите щось, що відрізняється тільки на стороні клієнта, перехід може бути незлагодженим. Однак, якщо спосіб двопрохідного рендерингу використано вдало, то рендеринг “оболонки” додатку на сервері і показ деяких віджетів лише на клієнті матиме свої переваги. Для того, щоб навчитись це робити і при цьому не отримати незбіжностей у розмітці, зверніться до пояснень у попередньому параграфі.</p>\n<hr>\n<h3 id=\"unmountcomponentatnode\"><a href=\"#unmountcomponentatnode\" 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\">unmountComponentAtNode()</code> </h3>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\">ReactDOM<span class=\"token punctuation\">.</span><span class=\"token function\">unmountComponentAtNode</span><span class=\"token punctuation\">(</span>container<span class=\"token punctuation\">)</span></code></pre></div>\n<p>Видаляє змонтований React-компонент з DOM-у та очищує обробників подій та стан. Якщо ніякий компонент не було змонтовано в контейнер, виклик цієї функції нічого не робить. Повертає <code class=\"gatsby-code-text\">true</code>, якщо компонент було демонтовано та <code class=\"gatsby-code-text\">false</code>, якщо не було ніякого компоненту, який би можна було демонтувати.</p>\n<hr>\n<h3 id=\"finddomnode\"><a href=\"#finddomnode\" 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\">findDOMNode()</code> </h3>\n<blockquote>\n<p>Примітка:</p>\n<p><code class=\"gatsby-code-text\">findDOMNode</code> — це запасний спосіб, що використовувався для доступу до базового DOM-вузла. У більшості випадків, використання цього способу не рекомендується, оскільки він порушує абстракцію компоненту. <a href=\"/docs/strict-mode.html#warning-about-deprecated-finddomnode-usage\">Він визнаний застарілим в <code class=\"gatsby-code-text\">StrictMode</code>.</a></p>\n</blockquote>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\">ReactDOM<span class=\"token punctuation\">.</span><span class=\"token function\">findDOMNode</span><span class=\"token punctuation\">(</span>component<span class=\"token punctuation\">)</span></code></pre></div>\n<p>Якщо цей компонент був змонтований у DOM, цей метод поверне відповідний нативний браузерний DOM-елемент. Цей метод корисний для читання значення з DOM-у, таких як значення полів форми та вимірювань DOM. <strong>У більшості випадків, ви можете приєднати ref до DOM-вузла і уникнути використання <code class=\"gatsby-code-text\">findDOMNode</code> взагалі.</strong></p>\n<p>Якщо компонент рендериться в <code class=\"gatsby-code-text\">null</code> або <code class=\"gatsby-code-text\">false</code>, <code class=\"gatsby-code-text\">findDOMNode</code> повертає <code class=\"gatsby-code-text\">null</code>. Коли компонент рендериться в рядок, <code class=\"gatsby-code-text\">findDOMNode</code> повертає текстовий DOM-вузол, який містить значення. Починаючи з React 16, компонент може повертати фрагмент з декількома дочірніми елементами, в цьому випадку <code class=\"gatsby-code-text\">findDOMNode</code> поверне DOM-вузол, що відповідає першому не порожньому нащадку.</p>\n<blockquote>\n<p>Примітка:</p>\n<p><code class=\"gatsby-code-text\">findDOMNode</code> працює тільки на змонтованих компонентах (тобто таких компонентах, що були розміщені в DOM-і). Якщо ви спробуєте викликати цей метод на компоненті, який ще не було змонтовано (для прикладу, викликати <code class=\"gatsby-code-text\">findDOMNode()</code> у <code class=\"gatsby-code-text\">render()</code> методі компоненту, який ще тільки буде створено), то отримаєте помилку.</p>\n<p><code class=\"gatsby-code-text\">findDOMNode</code> не може використовуватись з функціональними компонентами.</p>\n</blockquote>\n<hr>\n<h3 id=\"createportal\"><a href=\"#createportal\" 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\">createPortal()</code> </h3>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\">ReactDOM<span class=\"token punctuation\">.</span><span class=\"token function\">createPortal</span><span class=\"token punctuation\">(</span>child<span class=\"token punctuation\">,</span> container<span class=\"token punctuation\">)</span></code></pre></div>\n<p>Створює портал. Портали надають можливість <a href=\"/docs/portals.html\">рендерити дочірні елементи у DOM-вузол, який існує за межами ієрархії DOM-компонента</a>.</p>","frontmatter":{"title":"ReactDOM","next":null,"prev":null},"fields":{"path":"content/docs/reference-react-dom.md","slug":"docs/react-dom.html"}}},"pageContext":{"slug":"docs/react-dom.html"}},"staticQueryHashes":[]}