React.createElement(
type, // 태그 이름 문자열 | 리액트 컴포넌트 | React.Fragment
[props], // 리액트 컴포넌트에 넣어주는 데이터 객체
[...childern] // 자식으로 넣어주는 요소들
);
// 1. 태그 이름 문자열 type
ReactDOM.render(
React.createElement('h1', null, `type 이 "태그 이름 문자열" 입니다.`),
document.querySelector("#root")
);
<div id="root">
<h1>type 이 "태그 이름 문자열" 입니다.</h1>
</div>
// 2. 리액트 컴포넌트 type
const Component = () => React.createElement('p', null, `type 이 "React 컴포넌트" 입니다.`);
// <Component></Component> => <Component /> => <p>type 이 "React 컴포넌트" 입니다.</p>
ReactDOM.render(
React.createElement(Component, null, null),
document.querySelector("#root")
);
<div id="root">
<p>type 이 "React 컴포넌트" 입니다.</p>
</div>
// 3. React.Fragment
ReactDOM.render(
React.createElement(
React.Fragment,
null,
`type 이 "React Fragment" 입니다.`,
`type 이 "React Fragment" 입니다.`,
`type 이 "React Fragment" 입니다.`
),
document.querySelector("#root")
);
<div id="root">
type 이 "React Fragment" 입니다.
type 이 "React Fragment" 입니다.
type 이 "React Fragment" 입니다.
</div>
// root 인 div 밑에 자식요소를 배열처럼 넣고 싶다 할 때 사용 할 수 있다.
<div>
<div>
<h1>주제</h1>
<ul>
<li>React</li>
<li>Vue</li>
</ul>
</div>
</div>
// 4. 복잡한 리액트 앨리먼트 모임
ReactDOM.render(
React.createElement('div', null,
React.createElement('div', null,
React.createElement('h1', null, "주제"),
React.createElement('ul', null,
React.createElement("li", null, "React"),
React.createElement("li", null, "Vue")
)
)
),
document.querySelector('#root')
);
**가독성 매우 불쾌! babel 로 개선 가능.**
다음 장에서 이에 관해 다룬다.