JSX
JSX 개념
JSX(JavaScript XML)은 JavaScript의 확장 문법으로 JavaScript 코드 안에서 UI 구조를 표현하기 위해 사용됩니다. React에서는 JSX를 사용하여 UI를 선언적으로 작성하여 Babel 같은 도구를 통해 JavaScript로 변환되어 브라우저에서 해석될 수 있습니다.
JS를 다뤄봤다면 알겠지만, JS로는 HTML 요소를 선택하고 하나하나 어떻게 만들고 넣을지 직접 명령해서 요소를 다뤄야합니다.
const h1 = document.createElement('h1');
h1.textContent = 'Hello, World';
h1.className = 'title';
document.body.appendChild(h1);
const element = <h1 className="title">Hello, World</h1>;
JSX에서는 무엇을 보여줄지만 선언하면 React가 알아서 구조를 만들어주기 때문에 코드가 간결하고 가독성이 높습니다.
React Element
React Element는 React가 UI를 화면에 그리기 위하여 사용하는 객체로 JSX는 내부적으로 React Element를 생성합니다.
const title = <h1>Hello, World</h1>;
const title = React.createElement('h1', null, 'Hello, World');
{
type: 'h1', // HTML 태그 or 컴포넌트
props: { // 속성들
children: 'Hello, World'
},
key: null // 고유 키
}