JSX라 하며 JavaScript를 확장한 문법입니다. UI가 어떻게 생겨야 하는지 설명하기 위해 React와 함께 사용할 것을 권장합니다. JSX라고 하면 템플릿 언어가 떠오를 수도 있지만, JavaScript의 모든 기능이 포함되어 있습니다.
출처 : 공식문서
컴포넌트에서 XML 형태로 코드를 작성하면 babel 이 JSX 를 JS 로 변환해준다.
JSX 사용이 필수는 아니지만 대부분 사용하기 때문에 필수라고 볼 수 있다.
변환 사이트 : https://babeljs.io/repl
Ex) <input/>, <br/>
Ex) 틀린 코드
return(
<div></div>
<div></div>
)
Ex) 맞는 코드
return(
<div>
<div></div>
<div></div>
</div>
)
const Hello = () => {
const message = "Hello";
return (
<div>
<h1>
This is {message} Component
</h1>
</div>
)
}
Ex) 틀린 코드
return(
<div>
<span style="color : red;">bad</span>
</div>
)
Ex) 맞는 코드
const style ={
color: green;
}
return(
<div>
<span style={style}>good</span>
</div>
)
Ex) background-color
-> backgorundColor
/* Hello.css */
.color-red{
color:red;
}
// Hello.js
import React from 'react'
import "./Hello.css"
const Hello = () => {
const message = "Hello";
return (
<div>
<h1 className="color-red">
This is {message} Component
</h1>
</div>
)
}
export default Hello;
class 로 사용해도 작동은 하나 경고를 띄우니 꼭 className 으로 사용하자.
{/* Comment */}
로 표현해야 브라우저에 노출되지 않는다.
태그 내부에도 주석이 사용가능하다.
<h1 // Comment in Tag
> ...
</h1>
제일 중요한 것은 태그는 무조건 닫아야하고, 감싸는 태그가 있어야한다는 것!