본문 바로가기
개발이야기/react

JSX

by 효우너 2021. 1. 25.
728x90
반응형

리액트는 JSX를 사용해야 한다.

JSX

자바스크립트를 확장한 문법이다. 자바스크립트의 모든 기능이 포함되어 있다.

1. JSX에서 태그는 꼭 닫혀야 한다. 아래의 예제에서 input에 close가 되지 않는다면 에러가 발생한다.

import React, { Component } from 'react';

class App extends Component {
    render() {
        return(
            <div>
                <input type="text" />
            </div>
        );
    }
}

export default App;

 

2. 두 개 이상의 엘리먼트는 무조건 하나의 엘리먼트로 감싸 져있어야 한다. Fragment를 이용하면 된다. <div>를 사용해도 되지만 Fragment를 사용하는 것이 더 효율적이다.

import React, { Component, Fragment } from 'react';

class App extends Component {
    render() {
        return(
            <Fragment>
                <div> Hello </div>
                <div> Bye </div>
            </Fragment>
        );
    }
}

export default App;

3. 자바스크립트 값을 사용할 수 있다. 출력은 hello alia로 된다.

import React, { Component } from 'react';

class App extends Component {
    render() {
        const name = 'alia'
        return(
            <div>
                hello {name}
            </div>
        );
    }
}

export default App;

4. 조건부 렌더링으로 삼항 연산자를 사용할 수 있다. 여기서는 '정답'이 출력된다. false일 땐 '오답'이 출력된다.

import React, { Component } from 'react';

class App extends Component {
    render() {
        return(
            <div>
                {
                    10 + 2 === 12
                        ? '정답'
                        : '오답'
                }
            </div>
        );
    }
}

export default App;

여기서는 alia로 일치할 경우 '정답' 이 출력되지만, 불일치할 경우 아무것도 나타나지 않는다.

import React, { Component } from 'react';

class App extends Component {
    render() {
        const name = 'alia'
        return(
            <div>
                {
                    name === 'alia' && <div>정답</div>
                }
            </div>
        );
    }
}

export default App;

5. camelCase를 사용한다. 일반적인 css는 background-color로 사용한다면 JSX에서는 backgroundColor로 사용한다.

import React, { Component } from 'react';

class App extends Component {
    render(){
        const style = {
            backgroundColor: 'black',
            padding: '16px',
            color: 'white',
            fontSize:  '36px'
        };

        return <div style={style}>안녕하세요~!</div>
    }
}

export default App;

JSX안에 직접적으로 사용하는 것이 아니라 클래스로 가져오려면 className을 사용해야 한다.

import React, { Component } from 'react';
import './App.css';
class App extends Component {
    render(){
        return <div className="App">안녕하세요~!</div>;
    }
}

export default App;

//App.css
.App{
    background: 'black',
    padding: '16px',
    color: 'white',
    font-size:  '36px'
}

6. 주석을 사용하는 법이 일반적인 //, # , /**/ 과는 조금 다르게 한번 감싸줘야 한다.

import React, { Component } from 'react';

class App extends Component {
    render(){
        return (
            <div>
            {/* 주석 처리 */}
                <h1 //주석처리>리액트</h1>
            </div>
        )
}

export default App;
728x90
반응형

'개발이야기 > react' 카테고리의 다른 글

LifeCycle API  (0) 2021.01.30
Props 와 State  (0) 2021.01.27
Webpack과 Babel  (0) 2021.01.22
React란?  (0) 2021.01.21

댓글