Web/React & Next.js
React | JSX 문법의 특징
일렁이는코드
2021. 10. 24. 17:23
JSX
JSX 문법의 특징 및 준수사항
JSX
const element = <h1>Hello, world!</h1>;
리액트에서는 JSX라는 독특한 문법을 가지고 있습니다. JSX는 자바스크립트와 HTML을 동시에 사용하며, HTML에 자바스크립트의 변수들을 바로 사용할 수 있는 일종의 템플릿 언어입니다.
JSX 문법의 특징
1. 컴포넌트에 여러 요소가 있다면 반드시 부모 요소 하나가 감싸는 형태여야 합니다.
리액트가 사용하는 Virtual DOM 방식에서는 컴포넌트 변화를 감지할 때 효율적으로 비교하고자 컴포넌트 내부는 하나의 DOM 트리 구조로 이루어져야 한다는 규칙이 있기 때문입니다.
import React from 'react';
function App(){
return(
<>
<h1>header1</h1>
<h2>header2</h2>
</>
)
}
2. 변수의 값을 {변수명} 과 같이 넣어 렌더링 합니다.
import React from 'react';
function App(){
const name = 'name';
return(
<>
<h1>{name}</h1>
<h2>header2</h2>
</>
)
}
3. JSX 내부의 자바스크립트 표현식 내에서 if문을 사용할 수 없어서, 조건부 연산자(삼항 연산자)를 사용합니다.
import React from 'react';
function App() {
const name = '리액트';
return (
<div>
{name === '리액트'? (
<h1>리액트</h1>
) : (
<h2>리액트가 아님</h2>
)}
</div>
);
}
4. 기존에 HTML에서 스타일을 지정할 때 background-color 와 같이 - 문자가 포함된 이름들을, JSX에서 사용할 때에는 -를 없애고 카멜 표기법으로 작성해야 합니다.
import React from 'react';
function App() {
const style = {
backgroundColor: 'white',
fontSize: '10px',
fontWeight: 'bold'
}
return (
<div style={style}>테스트</div>
)
}
5. div에 class 속성을 설정할때 className으로 설정해주어야 합니다.
import React from 'react';
function App(){
const name = 'name';
return(
<>
<h1 className="colorRed">header1</h1>
<h2 className="colorBlue">header2</h2>
</>
)
}
6. HTML 상에서 닫힌 태그가 없던 태그들도 모두 닫힌 태그를 사용해주어야 합니다.
<input></input>
<input />
반응형