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?