JSX in Action

React 요소를 손쉽게 생성하는 방법!

JSX 인터폴레이션

JSX는 JavaScript 표현식(expression)을 중괄호({})로 묶어 데이터를 인터폴레이션(Interpolation) 합니다. 즉, HTML 코드에서 데이터를 빼내 변수에 등록한 후, 변수를 HTML 코드에 연결해 구조를 구성 할 수 있다는 말입니다.

// 데이터
let data = {
  headline: 'JSX 란?',
  abbrs: {
    jsx: 'JavaScript Syntax eXtension',
    html: 'Hyper Text Markup Language',
    ui: 'User Interface',
  },
}

// -----------------------------------------------------------------------

// React 요소: headline
const headlineElement = <h1>{data.headline}</h1>

// 데이터 변경(업데이트)
data = {
  ...data,
  headline: data.headline.replace('란?', '').trim(),
}

// React 요소: paragraph
// ※ 코드를 개행하고자 한다면? JSX 코드를 ()를 사용해 묶어 줍니다.
const paragraphElement = (
  <p>
    <abbr title={data.abbrs.jsx}>
      {data.headline.replace('란?', '').trim()}
    </abbr>
    는 JavaScript 문법 확장으로 구문이 <abbr title={data.abbrs.html}>HTML</abbr>
    과 유사합니다. React 애플리케이션 제작 시 꼭 <abbr>{data.headline}</abbr>가
    필요한 것은 아니지만, JavaScript로
    <abbr title={data.abbrs.ui}>UI</abbr>
    View를 구성하는 마크업하는 것은 매우 까다로우므로 특별한 경우가 아니라면
    <abbr>{data.headline}</abbr> 사용을 권장합니다.
  </p>
)

// React 요소: container
const constainerElement = (
  <div className="container paper">
    <div className="pattern">
      <div className="content">
        {headlineElement}
        {paragraphElement}
      </div>
    </div>
  </div>
)
<div class="container paper">
  <div class="pattern">
    <div class="content">
      <h1>JSX 란?</h1>
      <p>
        <abbr title="JavaScript Syntax eXtension">JSX</abbr>는 JavaScript 
        문법 확장으로 구문이 <abbr title="Hyper Text Markup Language">HTML</abbr>과 
        유사합니다. React 애플리케이션 제작 시 꼭 <abbr>JSX</abbr>가 필요한 것은 아니지만, 
        JavaScript로 <abbr title="User Interface">UI</abbr> View를 구성하는 
        마크업하는 것은 매우 까다로우므로 특별한 경우가 아니라면 <abbr>JSX</abbr> 사용을 
        권장합니다.
      </p>
    </div>
  </div>
</div>

라이브 예제

Last updated