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 />
반응형
'Web > React & Next.js' 카테고리의 다른 글
React | 카테고리 필터링, 동적 라우팅 기능 (0) | 2021.11.14 |
---|---|
React | API Data (json) 중복 map 사용 하기 (0) | 2021.11.14 |
React | 상수 데이터 / mock data (0) | 2021.11.07 |
React | State & Props & Event (0) | 2021.10.31 |
React | Component 와 생명주기 (0) | 2021.10.26 |