React(리액트)란 JavaScript UI 라이브러리다.
* 라이브러리(Library)는 반복적인 코드 작성을 없애기 위해 언제든지 필요한 곳에서 호출하여 재사용할 수 있도록 Class나 Function으로 만들어진 것이다.
React에서는 JSX 표현을 사용한다.
JSX(Syntax extension for JavaScript)
JSX는 JavaScript 확장 버전으로 HTML + JavaScript라 보면 된다.
1
|
const hi = <p>Hi</p>;
|
cs |
위 처럼 HTML과 자바스크립트 코드를 혼용해서 사용할 수 있다.
JSX는 자바스크립트 문법이 아니라 브라우저가 해석하지 못해 오류가 난다. 따라서 JSX 문법이 포함된 React.js를 사용하기 위해 해당 파일을 정규 자바스크립트로 변환시키는 컴파일 과정이 필요하다.
1
2
3
4
5
6
7
|
const hi = <input readOnly={true} />;
const myFavorite = {
food: <li>pizza</li>,
animal: <li>dog</li>,
hobby: <li className="list-item">programming</li>
};
|
cs |
JSX는 자바스크립과 다르기 때문에, 태그의 속성명(attribute)도 다르게 쓰인다.
예로, 원래 class로 불러오면 됐던 것이 JSX에서는 className으로 써야 한다. (무조건 캐멀형식으로 써야 한다)
JSX 특징
1. Self-Closing Tag
그 어떤 태그라도 self-closing tag(< />)가 가능하다.
<img src="name.png" />
<input type="button" />
자바스크립트에서는 img태그나 input에 closing을 하지 않아도 됐지만, JSX는 무조건 닫아야 한다.
2. 소괄호로 하나의 태그로 시작하기
이는 Nested JSX의 경우 해당된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
// 항상 소괄호로 감싸기
const good = (
<div>
<p>hi</p>
</div>
);
// (틀린 예) 두개의 태그로 시작
const wrong = (
<p>list1</p>
<p>list2</p>
);
// (옳은 예) 하나의 태그로 시작
const right = (
<div>
<p>list1</p>
<p>list2</p>
</div>
);
|
cs |
'■ 프로그래밍 > React' 카테고리의 다른 글
React Lifecycle(생명 주기) (0) | 2020.04.12 |
---|---|
State (0) | 2020.04.12 |
Props (0) | 2020.04.12 |
[React/에러] Module not found: Can't resolve './node_modules/react' (0) | 2020.04.12 |
Component(컴포넌트) (0) | 2020.04.11 |