JSX는 결국 React 객체로 바뀌기 때문이다.
다음과 같이 React 객체로 바뀐다.
// JSX
return (
<div>
<h2>Title</h2>
<MyComponent data={data} />
</div>
);
// React 객체
return (
React.createElement(
'div',
{},
React.createElement('h2', {}, 'Title'),
React.createElement(MyComponent, { data: data })
)
);
React.createElement(요소 이름, props 정보, 내부 요소1, 내부 요소2, ...)
다음과 같이 React 객체 여러 개를 반환하게 된다. 함수의 반환값은 여러 개의 객체일 수 없다.
// JSX
return (
<div><div>
<h2>Title</h2>
<MyComponent data={data} />
);
// React 객체
return (
React.createElement('div', {})
React.createElement('h2', {}, 'Title')
React.createElement(MyComponent, { data: data })
);
JSX 요소 각각은 React 객체이며 하나의 객체만을 반환하기 위해서는 하나의 루트 요소만을 가져야 한다.