티스토리 뷰
JSX : 자바스크립트 확장 문법
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import React, { Component } from 'react';
class App extends Component {
render() {
return (
<div>
</div>
);
}
}
export default App;
|
cs |
- 위와 같이 작성한 코드는 babel-loader를 사용하여 자바스크립트로 변환함
장점
- 보기 쉽고 익숙함 -> HTML 코드와 비슷함
기본 문법
1. 컴포넌트에 여러 요소가 있다면, 무조건 부모 요소 하나로 감싸야 함
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class App extends Component {
render() {
return (
<div>
<div>
<h1>Hello React!</h1>
</div>
<div>
<h2>Welcome</h2>
</div>
</div>
);
}
}
|
cs |
- Fragment 사용 : 콘솔창에 <div> 코드가 보이지 않음, 즉 <div> 지옥을 방지
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class App extends Component {
render() {
return (
<Fragment>
<div>
<h1>Hello React!</h1>
</div>
<div>
<h2>Welcome</h2>
</div>
</Fragment>
);
}
}
|
cs |
2. 자바스크립트 표현
1
2
3
4
5
6
7
8
9
10
|
class App extends Component {
render() {
const name = 'React';
return (
<div>
hello {name}!
</div>
);
}
}
|
cs |
3. 조건부 연산자 : 모든 조건부 연산자은 사용 불가능이지만, 아래 2개만 가능
- 삼항 연산자
1
2
3
4
5
6
7
8
9
10
11
12
13
|
class App extends Component {
render() {
return (
<div>
{
3 + 5 === 8
? (<div>정답</div>)
: (<div>오답</div>)
}
</div>
);
}
}
|
cs |
- AND 연산자
1
2
3
4
5
6
7
8
9
10
11
|
class App extends Component {
render() {
return (
<div>
{
3 + 5 === 8 && (<div>정답</div>)
}
</div>
);
}
}
|
cs |
- if문을 사용할 수 없음
-> JSX 밖에서는 가능
-> JSX 안에서는 IIFE를 사용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class App extends Component {
render() {
const value = 1;
return (
<div>
{
(function() {
if (value === 1) return (<div>하나</div>);
if (value === 2) return (<div>둘</div>);
if (value === 3) return (<div>셋</div>);
})()
}
</div>
);
}
}
|
cs |
4. CSS / style
- App.css
1
2
3
4
5
6
7
|
.App {
background: black;
color: aqua;
font-size: 36px;
padding: 1rem;
font-weight: 600;
}
|
cs |
- App.js
1
2
3
4
5
6
7
8
9
10
11
|
import './App.css'
class App extends Component {
render() {
return (
<div className="App">
리액트
</div>
);
}
}
|
cs |
- JSX안에서 style 설정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class App extends Component {
render() {
const style = {
backgroundColor: 'black',
padding: '16px',
color: 'white',
fontSize: '12px'
};
return (
<div style={style}>
hi there
</div>
);
}
}
|
cs |
5. class 대신 className 사용
- class 키워드는 이미 자바스크립트에 존재하는 키워드이기 때문
6. 주석
1
2
3
4
5
6
7
8
9
10
11
|
class App extends Component {
render() {
return (
<div>
{/* 주석은 이렇게 */}
<h1 // 태그 사이에>
리액트</h1>
</div>
);
}
}
|
cs |
'FRONT-END > REACT' 카테고리의 다른 글
[REACT] STATE (0) | 2019.01.03 |
---|---|
[REACT] PROPS (0) | 2019.01.03 |
[REACT] REDUX (0) | 2018.10.22 |
[REACT] 기본 설정 및 설치 (0) | 2018.10.19 |
[REACT] BASIC THINGS (0) | 2018.10.15 |
댓글