We want to hear from you!Take our 2021 Community Survey!
This site is no longer updated.Go to react.dev

JSX ์—†์ด ์‚ฌ์šฉํ•˜๋Š” React

These docs are old and wonโ€™t be updated. Go to react.dev for the new React docs.

React๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ JSX๋Š” ํ•„์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋นŒ๋“œ ํ™˜๊ฒฝ์—์„œ ์ปดํŒŒ์ผ ์„ค์ •์„ ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์„ ๋•Œ JSX ์—†์ด React๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํŠนํžˆ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๊ฐ JSX ์—˜๋ฆฌ๋จผํŠธ๋Š” React.createElement(component, props, ...children)๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•œ ๋ฌธ๋ฒ• ์„คํƒ•์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ JSX๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์€ ์ˆœ์ˆ˜ JavaScript๋กœ๋„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ์˜ JSX๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋Š”

class Hello extends React.Component {
  render() {
    return <div>Hello {this.props.toWhat}</div>;
  }
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Hello toWhat="World" />);

์•„๋ž˜์ฒ˜๋Ÿผ JSX๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

class Hello extends React.Component {
  render() {
    return React.createElement('div', null, `Hello ${this.props.toWhat}`);
  }
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(React.createElement(Hello, {toWhat: 'World'}, null));

JSX๊ฐ€ JavaScript๋กœ ๋ณ€ํ™˜๋˜๋Š” ์˜ˆ์‹œ๋ฅผ ๋” ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด the online Babel compiler๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์ปดํฌ๋„ŒํŠธ๋Š” ๋ฌธ์ž์—ด์ด๋‚˜ React.Component์˜ ํ•˜์œ„ ํด๋ž˜์Šค ๋˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์œ„ํ•œ ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

React.createElement๋ฅผ ๋„ˆ๋ฌด ๋งŽ์ด ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์ด ํ”ผ๊ณคํ•˜๋‹ค๋ฉด ์งง์€ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

const e = React.createElement;

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(e('div', null, 'Hello World'));

React.createElement๋ฅผ ์งง์€ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋ฉด ํŽธ๋ฆฌํ•˜๊ฒŒ JSX ์—†์ด React๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋” ๊ฐ„๊ฒฐํ•œ ๊ตฌ๋ฌธ์„ ์ œ๊ณตํ•˜๋Š” react-hyperscript๋‚˜ hyperscript-helpers ๊ฐ™์€ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐธ๊ณ ํ•ด๋„ ์ข‹์Šต๋‹ˆ๋‹ค.

Is this page useful?Edit this page