React

JSX

youngseokim_kr 2021. 11. 20. 17:39

jsx 문법으로 작성된 코드는 순수한 javascript 로 컴파일 하여 사용한다.

그 컴파일을 babel 이 한다.

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <meta http-equiv="X-UA-Compatoble" content="ie=edge" />
  <title>Example</title>
</head>
<body>
  <div id="root"></div>
<script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script type="text/babel">
    console.log(React);
    console.log(ReactDOM);


    ReactDOM.render(
        <div>
         <div>
          <h1>주제</h1>
           <ul>
           <li>React</li>
           <li>Vue</li>
           </ul>
         </div>
       </div>,
      document.querySelector("#root")
  );

  </script>
  </body>
</html>

babel을 불러와서 이렇게 작성해 줄 수 있다.

jsx를 쓰는이유

React.createElement vs jsx

가독성이 좋다

babel 과 같은 컴파일 과정에서 문법적 오류를 인지하기 쉽다.

JSX 문법

최상이 요소가 하나여야 한다.

최상위 요소를 리턴할 경우 ()로 감싸야한다.

자식들을 바로 랜더링 하고 싶으면, <> 자식들</>를 사용합니다. =>Fragment

최상위에 <> </> 가짜 태그로 감싸서 최상위를 하나로 만들어준다.

자바스크립트 표현식을 사용하려면 {표현식}를 이용한다.    =>>>$ xxxx

if문은 사용할 수 없다. ->삼항 연산자 혹은 &&를 사용한다.

style을 이용해 인라인 스타일링이 가능

class 대신 className을 사용해 class를 적용할 수 있다.

자식요소가 있으면, 꼭 닫아야 하고, 자식요소가 없으면 열면서 닫아야 한다.

<p></p>

<br /> 중요!!