javascript
의 확장 문법입니다. (JavaScript eXtension)XML
과 유사하게 생겼습니다.- 쉽게 말해
HTML
문법을JavaScript
코드 내부에 쓴 것을JSX
라고 합니다.
React.createElement
와JSX
를 비교하였을 때JSX
가 가독성이 훨씬 뛰어 납니다.Babel
과 같은 컴파일 과정에서 문법적인 오류를 인지하기 쉽습니다.
Babel
을 사용하면JSX
의 문법으로 작성된 코드를 순수한JavaScript
로 컴파일하여 사용할 수 있습니다.Babel
공식 홈페이지에서Babel
을 통해JSX
가 어떠한 방식으로 컴파일이 되는지 확인할 수 있습니다.- Babel 공식 홈페이지
4-1.CDN 주소
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> <script type="text/babel">
Babel
홈페이지에 나와있는CDN
주소입니다.- 이를 통해 별도의 설치 없이
Babel
사용이 가능합니다.babel
을 사용한다는 의미로script type
부분에text/babel
를 정의 해줍니다.- Babel CDN 참고 사이트
4.2 작성법
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Example</title> <script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script> <script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script> <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> <body> <div id="root"></div> <script type="text/babel"> // 우리가 작성한 코드 =>(babel) => 순수하게 실행할 수 있는 자바스크립트 // babel(JSX 문법을 이해함) ReactDOM.render( // 아래에 JSX 문법 작성 <div> <div> <h1>주제</h1> <ul> <li>React</li> <li>Vue</li> </ul> </div> </div>, document.querySelector("#root") ); </script> </body> </html>
- 위와 같이
JSX
문법으로 코드를 작성하면 됩니다.Babel
이 자동으로JavaScript
문법으로 컴파일을 진행하게 됩니다.실행 결과
- 1.최상위 요소가 하나여야만 합니다.
- 2.최상위 요소를
return
하는 경우()
로 감싸야합니다.- 3.자식 요소를 바로 렌더링하고 싶다면
<>자식 요소</>
를 사용하며 이를Fragment
라 부릅니다.- 4.자바스크립트 표현식을 사용하려면
{표현식}
을 이용합니다.- 5.
if
문은 사용할 수 없으며 삼항 연산자 혹은 논리연산자(&&
)을 사용합니다.- 6.
style
을 이용하여 인라인 스타일링이 가능합니다.- 7.
class
대신className
을 사용해class
를 적용할 수 있습니다.- 8.자식요소가 있으면 꼭 닫아야 하고 자식요소가 없으면 열면서 닫아야 합니다.
- <p>Hello</P> - <br/>