충 민 2022. 10. 12. 21:50

JSX는 자바스크립트의 확장 문법이며 XML과 매우 비슷하게 생겼다.

이런 형식으로 작성한 코드는 브라우저에서 실행되기 전에 코드가 번들링되는 과정에서 바벨을 사용하여 일반 자바 스크립트 형태의 코드로 변환된다. 

만약 컴포넌트를 렌더링 할 때마다 JSX코드를 작성하는 것이 아니라 위 코드처럼 매번 React.createElement 함수를 사용한다면 매우 불편할 것 같다. 하지만 JSX가 매우 편하게 UI를 렌더링이 가능하다!!

 

   장점   

o 보기 쉽고 익숙하다!

        JSX르 사용하는 것이 더 가독성이 높고 작성하기 쉽다. HTML로 코딩하는 것과 비슷하기 때문이다.

o 더욱 높은 활용도!

        JSX에서 div, span과 같은 HTML태그를 사용할 수 있을 뿐 아니라, 컴포넌트도 JSX안에서 작성가능하다.

   문법   

정말 편리하지만 몇가지 규칙이 존재한다! 

감싸인 요소 

컴포넌트에 여러 요소가 있다면 반드시 부모요소 하나로 감싸야 한다!

App.js

import React from 'react';
import Hello from './Hello';

function App() {
  return (
    <Hello />
    <div>안녕히계세요.</div>
  );
}

export default App;

이런 코드는 오류가 발생하게 된다!!

그 대신에 하나의 태그로 감싸주셔야 한다.

import React from 'react';
import Hello from './Hello';

function App() {
  return (
    <div>
      <Hello />
      <div>안녕히계세요</div>
    </div>
  );
}

export default App;

하지만, 이렇게 단순히 감싸기 위하여 불필요한 div 로 감싸는게 별로 좋지 않은 상황도 있다. 예를 들어서 스타일 관련 설정을 하다가 복잡해지게 되는 상황도 올 수 있고, table 관련 태그를 작성 할 때에도 내용을 div 같은걸로 감싸기엔 애매하다. 그럴 땐, 리액트의 Fragment 라는 것을 사용하면 된다.

 

[출처 ]https://react.vlpt.us/basic/04-jsx.html

 

4. JSX · GitBook

4. JSX의 기본 규칙 알아보기 JSX 는 리액트에서 생김새를 정의할 때, 사용하는 문법입니다. 얼핏보면 HTML 같이 생겼지만 실제로는 JavaScript 입니다. return 안녕하세요 ; 리액트 컴포넌트 파일에서 XML

react.vlpt.us