[React] 리액트 JSX
글 작성자: 망고좋아
반응형
🎯 JSX
📝 JSX
const App = () => {
return (
<div>
<p>Hi</p>
<MyComponent>하이~</MyComponent>
<div>비와이~</div>
</div>
);
};
- JSX는 함수 호출과 객체 생성을 위한 문법적 편의를 제공하는 JavaScript의 확장이다.
- HTML과 비슷하게 생겼으나 JavaScript이고 HTML과 다른 부분이 있다.
- JSX는 Babel에 의해서 Transcompile 된다.
📕 JSX 장점
- 개발자 편의성 향상
- 협업에 용이 / 생산성 향상
- 문법 오류와 코드량 감소
📝 JSX 특징 / HTML과 차이점
📕 HTML 태그 내에 JavaScript 연산
const App = () => {
const a = 3;
const b = 6;
return <div>{a} + {b} = {a+b} </div>
};
📕 class → className
<div className="greeting" style={{padding: 10, color: 'red'}}>
{name}님 안녕하세요 <br />
반갑습니다.
</div>
📕 스타일은 object로
const App = () => (
<div style={{
padding: 30,
color: "red",
backgroundColor: "blue"
}}>Hello world!</div>
)
- 첫 번째 중괄호는 js표현을 쓰겠다, 두 번째 중괄호는 js 객체의 시작을 알리는 괄호
HTML
의 인라인 스타일은""(큰따옴표)
로 감싼string
으로 정의하지만React
에서는{}(중괄호)
로 감싼object
로 정의한다.- 위와 같은 Inline style의 Property name은 camelCase로 적는다.
font-size → fontSize
,padding-left -> paddingLeft
📕 닫는 태그 필수
// HTML
<div>
<input type="text">
<br>
</div>
// JSX
<div>
<input type="text" />
<br />
</div>
- HTML 일부 태그의 경우 아예 닫는 태그를 생략하여 코드를 작성해도 되었지만, JSX에서는 닫는 태그를 필수로 작성하여야 한다.
📕 최상단 element는 반드시 하나
const App = () => {
return (
<> {/* React.Fragment */}
<div>Hello</div>
<div>World</div>
</>
)
}
- JSX의 원칙상 최상단 Element는 한 개만 작성이 가능하기 때문에 이를
<div>
or<React.Fragment>
를 이용해 감싼다. - 실제 렌더링 시에는 Fragment 안에 있는 내용만 출력된다.
- <React.Fragment>는 간단히
<>
로 표기가 가능하다.
반응형
'프로그래밍 > React' 카테고리의 다른 글
[React] 리액트 Props란? (0) | 2022.01.03 |
---|---|
[React] 리액트 컴포넌트와 Props (0) | 2021.12.30 |
[React / Error] 리액트 Module not found: Error: Can't resolve 'react' in 에러 해결 방법 (0) | 2021.10.23 |
[React] 리액트 ToDoList 만들기 :: 컴포넌트 만들기 (1) | 2021.10.08 |
[React] Ref로 DOM 다루기 :: useRef (0) | 2021.09.14 |
댓글
이 글 공유하기
다른 글
-
[React] 리액트 Props란?
[React] 리액트 Props란?
2022.01.03 -
[React] 리액트 컴포넌트와 Props
[React] 리액트 컴포넌트와 Props
2021.12.30 -
[React / Error] 리액트 Module not found: Error: Can't resolve 'react' in 에러 해결 방법
[React / Error] 리액트 Module not found: Error: Can't resolve 'react' in 에러 해결 방법
2021.10.23 -
[React] 리액트 ToDoList 만들기 :: 컴포넌트 만들기
[React] 리액트 ToDoList 만들기 :: 컴포넌트 만들기
2021.10.08