ReactDOMClient
react-dom/client
ํจํค์ง๋ ํด๋ผ์ด์ธํธ์์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ด๊ธฐํํ ๋ ์ฌ์ฉํ ์ ์๋ ํด๋ผ์ด์ธํธ ํนํ ํจ์๋ค์ ์ ๊ณตํฉ๋๋ค. ๋๋ถ๋ถ์ ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ ์ด ๋ชจ๋์ด ํ์ํ์ง ์์ ๊ฒ์
๋๋ค.
import * as ReactDOM from 'react-dom/client';
npm๊ณผ ํจ๊ป ES5๋ฅผ ์ฌ์ฉ ์ค์ด๋ผ๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ์์ฑํฉ๋๋ค.
var ReactDOM = require('react-dom/client');
๊ฐ์
๋ค์ ํจ์๋ค์ ํด๋ผ์ด์ธํธ ํ๊ฒฝ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ธ๋ผ์ฐ์ ์ง์
React๋ ๋ชจ๋ ์ต์ ๋ธ๋ผ์ฐ์ ๋ค์ ์ง์ํ๋ฉฐ, ๊ตฌ๋ฒ์ ์ ํด๋ฆฌํ์ด ํ์ํฉ๋๋ค.
์ฃผ์
React๋ Internet Explorer์ ๊ฐ์ด ES5 ํจ์ ๋๋ ๋ง์ดํฌ๋กํ์คํฌ๋ฅผ ์ง์ํ์ง ์๋ ๊ตฌํ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. ์ฌ๋ฌ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด es5-shim ๋๋ es5-sham๊ณผ ๊ฐ์ ํด๋ฆฌํ์ ํ์ด์ง ๋ด ํฌํจํ ๊ฒฝ์ฐ ๊ตฌํ ๋ธ๋ผ์ฐ์ ์์๋ ๋์ํ ์ ์๊ฒ ์ง๋ง, ์ด๋ฌํ ๋ฐฉ์์ ์ ํํ๋ค๋ฉด ๋ ์ด์ ๋์์ ๋๋ฆด ์ ์์ต๋๋ค.
์ฐธ์กฐ
createRoot()
Try the new React documentation for
createRoot
.The new docs will soon replace this site, which will be archived. Provide feedback.
createRoot(container[, options]);
์ฃผ์ด์ง container
์ ๋ํด React ๋ฃจํธ๋ฅผ ๋ง๋ค๊ณ ํด๋น ๋ฃจํธ๋ฅผ ๋ฐํํฉ๋๋ค. ๋ฐํ๋ ๋ฃจํธ๋ก render
๋ฅผ ํตํด React ์๋ฆฌ๋จผํธ๋ฅผ DOM์ผ๋ก ๋ ๋๋งํ ์ ์์ต๋๋ค.
const root = createRoot(container);
root.render(element);
createRoot
๋ ๋ ๊ฐ์ง ๋งค๊ฐ๋ณ์๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
onRecoverableError
: React๊ฐ ์๋์ผ๋ก ์ค๋ฅ์์ ๋ณต๊ตฌ๋์์ ๊ฒฝ์ฐ ์ ํ์ ๋ฐ๋ผ ์ฝ๋ฐฑ์ด ํธ์ถ๋ฉ๋๋ค.identifierPrefix
: React๊ฐReact.useId
์ ์ํด ์์ฑ๋ ID๋ฅผ ์ ํ์ ๋ฐ๋ผ ์์ ๋ง๋ถ์ ๋๋ค. ๋์ผ ํ์ด์ง์ ์ฌ๋ฌ ๋ฃจํธ๋ฅผ ์ฌ์ฉํ ๋ ๋ฐ์ํ ์ ์๋ ์ถฉ๋์ ํํผํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค. ์๋ฒ์์ ์ฌ์ฉํ ์ ๋์ฌ(Prefix)์ ๋ฐ๋์ ๋์ผํด์ผ ํฉ๋๋ค.
์์ฑ๋ ๋ฃจํธ๋ unmount
๋ก ๋ง์ดํธ ํด์ ํ ์ ์์ต๋๋ค.
root.unmount();
์ฃผ์
createRoot()
๋ ๋๊ฒจ๋ฐ์ ์ปจํ ์ด๋ ๋ ธ๋์ ์ปจํ ์ธ ๋ค์ ์ ์ดํฉ๋๋ค. ๋ด๋ถ์ ์กด์ฌํ๋ ๋ชจ๋ DOM ์๋ฆฌ๋จผํธ๋ ๋ ๋๋ง์ด ํธ์ถ๋๋ฉด ์ ๋ถ ๊ต์ฒด๋ฉ๋๋ค. ์ดํ์ ํธ์ถ๋ค์ ํจ์จ์ ์ธ ๊ฐฑ์ ์ ์ํด React์ DOM ๋น๊ต ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํฉ๋๋ค.
createRoot()
๋ ๋๊ฒจ๋ฐ์ ์ปจํ ์ด๋ ๋ ธ๋๋ฅผ ์์ ํ์ง ์์ผ๋ฉฐ, ์ค์ง ๊ทธ ์์๋ง์ ์์ ํฉ๋๋ค. ๊ธฐ์กด DOM ๋ ธ๋์ ์ด๋ฏธ ์กด์ฌํ๋ ์์์ ๋ํด ๋ฎ์ด์ฐ๊ธฐ ์์ด ์ปดํฌ๋ํธ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ๊ฐ๋ฅํ ์๋ ์์ต๋๋ค.์๋ฒ ๋ ๋๋ง๋(server-rendered) ์ปจํ ์ด๋๋ฅผ hydrate ํ๊ธฐ ์ํด
createRoot()
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ง์ํ์ง ์๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋์hydrateRoot()
๋ฅผ ์ฌ์ฉํ์ธ์.
hydrateRoot()
Try the new React documentation for
hydrateRoot
.The new docs will soon replace this site, which will be archived. Provide feedback.
hydrateRoot(container, element[, options])
createRoot()
๊ณผ ๋์ผํ์ง๋ง, HTML ์ปจํ
์ธ ๊ฐ ReactDOMServer
๋ก ๋ ๋๋ง๋ ์ปจํ
์ด๋๋ฅผ hydrate ํ ๋ ์ฌ์ฉํฉ๋๋ค. React๋ ๊ธฐ์กด ๋งํฌ์
์ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ์ฐ๊ฒฐํ๋ ค ์๋ํ ๊ฒ์
๋๋ค.
hydrateRoot
๋ ๋ ๊ฐ์ง ๋งค๊ฐ๋ณ์๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
onRecoverableError
: React๊ฐ ์๋์ผ๋ก ์ค๋ฅ์์ ๋ณต๊ตฌ๋์์ ๊ฒฝ์ฐ ์ ํ์ ๋ฐ๋ผ ์ฝ๋ฐฑ์ด ํธ์ถ๋ฉ๋๋ค.identifierPrefix
: React๊ฐReact.useId
์ ์ํด ์์ฑ๋ ID๋ฅผ ์ ํ์ ๋ฐ๋ผ ์์ ๋ง๋ถ์ ๋๋ค. ๋์ผ ํ์ด์ง์ ์ฌ๋ฌ ๋ฃจํธ๋ฅผ ์ฌ์ฉํ ๋ ๋ฐ์ํ ์ ์๋ ์ถฉ๋์ ํํผํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค. ์๋ฒ์์ ์ฌ์ฉํ ์ ๋์ฌ(Prefix)์ ๋ฐ๋์ ๋์ผํด์ผ ํฉ๋๋ค.
์ฃผ์
React๋ ๋ ๋๋ง๋ ์ปจํ ์ธ ๊ฐ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ๋์ผํ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค. React๊ฐ ํ ์คํธ ์ปจํ ์ธ ์ ์ฐจ์ด๋ฅผ ๊ณ ์น ์๋ ์์ง๋ง ์ด๋ฌํ ๋ถ์ผ์น๋ฅผ ๋ฒ๊ทธ๋ก ์ทจ๊ธํ์ฌ ๊ณ ์ณ์ผ ํฉ๋๋ค. ๊ฐ๋ฐ ๋ชจ๋์์ React๋ hydration ์ค์ ๋ถ์ผ์น์ ๋ํด ๊ฒฝ๊ณ ํฉ๋๋ค. ๋ถ์ผ์น ์ํฉ์์๋ ์ดํธ๋ฆฌ๋ทฐํธ ์ฐจ์ด๊ฐ ๊ณ ์ณ์ง ์ ์๋ค๊ณ ๋ณด์ฅํ ์ ์์ต๋๋ค. ๋๋ค์์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ถ์ผ์น๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๋ ๋ง์ง ์์ผ๋ฉฐ, ๋ฐ์ํ ๊ฒฝ์ฐ ๋ชจ๋ ๋งํฌ์ ์ ๊ฒ์ฆํ๋ ๊ฒ์ด ๋งค์ฐ ํฐ ๋น์ฉ์ ์๋ฐํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์์ ์ด์ ๋ก ์ค์ํ ๋ฌธ์ ์ ๋๋ค.