리액트를 처음 공부 할 때 createElement() 함수를 배우는 이유는 리액트의 JSX가 결국 이 함수로 변환되기 때문이다!!!!
JSX는 코드 작성이 직관적이고 편리하게 만들어졌지만, 내부적으로는 React.createElement()를 통해 실제 DOM 요소로 변환 된다.
따라서, createElement()의 구조와 동작 원리를 이해하면 리액트가 어떻게 DOM을 생성하고 관리하는지 더 잘 이해할 수 있다!
const element = <h1 className="gretting">Hello, world!</h1>;
는 다음과 같이 변환 된다:
const element = React.createElement('h1', { className: 'greeting } , 'Hello, world!');
React.createElement() 함수는 다음과 같은 구조를 가진다.
React.createElement(type, [props], [...children])
예:
React.createElement('h1', null, 'Hello, world!'); // <h1>Hello, world!</h1>
React.createElement(MyComponent, null); // <MyComponent />
예:
React.createElement('div', { className: 'container', id: 'main' });
// <div class="container" id="main"></div>
예:
React.createElement('div', null, 'Hello', React.createElement('span', null, 'World'));
// <div>Hello<span>World</span></div>
JSX로 작성:
const element = (
<div className="greeting">
<h1>Hello, World!</h1>
<p>This is a paragraph.</p>
</div>
);
React.createElement()로 작성:
const element = React.creteElement(
'div',
{ className: 'greeting' },
React.createElement('h1', null, 'Hello, World!'),
React.createElement('p', null, 'This is a paragraph.')
);
리액트느ㅡㅡ으ㅡ으ㅡㅡ은 어려워ㅓㅓ요 ... .ㅠㅠ