본문 바로가기
Javascript

Javascript / JSX란?

by 너무앵 2022. 1. 16.

JSX란?

얼핏보면 HTML과 비슷한 형태의 자바스크립트 문법이다. REACT에서 사용하는 문법

import ReactDOM from 'react-dom';

ReactDOM.render(<h1>안녕하세요!</h1>, document.getElementById('root'));

JSX 특징

HTML과 다른 속성명

  1. 속성은 camelCase로 작성할 것

JSX 문법에서 여러 단어가 조합된 속성들을 정의할 땐 반드시 카멜 케이스(Camel Case)로 작성해야 한다.

예) onclick, onblur, onfocus, tabindex

 -> onClick, onBlur, onFocus, tabIndex 

import ReactDOM from 'react-dom';

ReactDOM.render(
  <button onClick= ... >클릭!</button>,
  document.getElementById('root')
);

  2. 자바스크립트 예약어와 같은 속성명은 변경해서 사용

for나 class처럼 자바스크립트의 문법에 해당하는 예약어와 똑같은 이름의 속성명은 사용할 수 없음.

예1) for -> htmlFor

예2) class -> className

import ReactDOM from 'react-dom';

ReactDOM.render(
  <form>
    <label htmlFor="name">이름</label>
    <input id="name" className="name-input" type="text" />
  </form>,
  document.getElementById('root')
);

반드시 하나의 요소로 감싸기 - Fragment

JSX 문법을 활용할 때는 반드시 하나의 요소로 감싸주어야 함

import ReactDOM from 'react-dom';

ReactDOM.render(
  <div> // div로 묶어준다
    <p>안녕</p>
    <p>리액트!</p>
  </div>,
  document.getElementById('root')
);

아래 코드처럼 빈 태그로 감싸는 단축 문법으로 활용 가능함

import ReactDOM from 'react-dom';

ReactDOM.render(
  <>
    <p>안녕</p>
    <p>리액트!</p>
  </>,
  document.getElementById('root')
);

자바스크립트 표현식 넣기

JSX 문법에서 중괄호({})를 활용하여 자바스크립트 표현식 사용 가능

import ReactDOM from 'react-dom';

const product = '맥북';

ReactDOM.render(
  <h1>나만의 {product} 주문하기</h1>,
  document.getElementById('root')
);

 

'Javascript' 카테고리의 다른 글

[React] Async / Await  (0) 2022.02.07