JSX is React Element
JSX는 React 요소와 동일
JSX 란?
JSX(JavaScript Syntax eXtension)는 XML과 유사한 구문 확장으로 ECMAScript 표준과 관련이 없습니다. JSX는 React 앱 제작 과정에서 반드시 필요한 것은 아니지만, JavaScript 추상 객체 만으로 UI View를 구성하는 마크업을 구현하는 것은 매우 복잡하고 불편하므로 특별한 상황이 아닌 경우 JSX를 사용하는 것이 권장됩니다. 🤨

JSX는 Babel JavaScript 컴파일러에 의해 React 요소(Element)로 컴파일 됩니다.
<button type="button" className="button button__resolve">승인</button>
// ⬇ Babel 컴파일러에 의해 React 요소로 컴파일 됨
React.createElement(
'button',
{
type: 'button',
className: 'button button__resolve'
},
'승인'
)
JSX는 필수?
JSX를 사용하지 않아도 React 앱을 구성하는 데 아무런 문제가 되지 않습니다. 다음과 같이 React 요소를 생성하고 조립하면 되기 때문입니다. 앞선 예제보다 다소 복잡한 DOM 구조를 React 요소로 생성한 코드입니다.
const containerElement = React.createElement(
'div',
{
className: 'container'
},
React.createElement(
'h1',
{
lang: 'en'
},
React.createElement(
'abbr',
{
title: 'JavaScript eXtension'
},
'JSX'
)
)
)
물론 JSX를 사용하면 코드가 직관적이고, HTML 문법과 비슷해 읽기 쉽고 수정하기도 편합니다. 🙂
const containerElement = (
<div className="container">
<h1 lang="en">
<abbr title="JavaScript eXtension">JSX</abbr>
</h1>
</div>
)
Babel REPL
Babel REPL 서비스는 JSX 코드가 React API 코드로 어떻게 변경되는 지 실시간으로 보여줍니다. 왼쪽 텍스트 필드에 JSX 코드를 입력하면, 오른쪽 텍스트 필드에 React API 코드로 변경되어 출력됩니다. (왼쪽 사이드 바 react
체크)

Last updated
Was this helpful?