React/velopert_react

JSX 기본 문법 알아보기 ⅱ

느리지만 꾸준하게 2021. 8. 18. 15:49

JSX에서 CSS스타일과 class를 사용하는 방법에 대해서 알아보자.

 

기본에 일반 html을 입력할 때는 문자열로 넣어주게 된다.

밑에는 class를 넣어주고 css를 통해 선언해서 색상은 초록색인 class를 적용해 주었다.

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <div style="background: blue; color: white; padding: 1rem">BLUE</div>
  <div class="green">GREEN</div>
</body>
</html>
.green {
  background: green;
  padding: 1rem;
  color: white;
}

 

 

리액트에서는 어떻게 다를까?

일단은 스타일을 사용할 때 객체형태로 넣어준다. 그리고 Camelcase를 사용한다. 즉 새로운 단어가 시작될 때마다 대문자를 사용하는 것이다. 그리고 자바스크립트 상으로 스타일을 입력하는 거라서 js코드를 입력해도 된다.

아래 코드를 보자.

import React, { Component } from 'react';

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

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

export default App;

그리고 html에서는 div class = green식으로 클래스 이름을 넣어주었는데 리액트에서는 살짝 다르다.

class대신에 className을 사용한다.

    return (
      <div style={style} clasName="App">
        안녕하세요!
      </div>

 

App.css파일을 만들어주고 넣어주고 싶은 파일을 만든다.

결론은 class가 아니라 className이라고 적어야 한다는 것을 기억하자. class라고 입력해도 작동하긴 한다. 그래도 className이라고 사용하는게 올바른 네이밍컨벤션이기 때문에 이렇게 사용하자.

import React, { Component } from 'react';
import './App.css';

class App extends Component {
  render() {
    return <div className="App">리액트</div>;
  }
}

export default App;

이번에는 주석을 작성하는 방법을 알아보자. 일반 div안에 h1을 작성해서 리액트라고 해보자. 그리고 괄호로 감싸서 여러줄로 보여지게끔 작성을 해본다. 일반적으로 자바스크립트에서 작성을 할 때는 //을 이용한다.

JSX에서는 //을 사용하면 렌더링 된다. 그리고 멀티라인도(/* */)예외가 아니다!

import React, { Component } from 'react';
import './App.css';

class App extends Component {
  render() {
    return (
      <div>
        // 하이!
        /* 
        멀티라인도 예외가 아니다!
        */
        <h1>리액트</h1>
      </div>
    );
  }
}

export default App;

그래서 중괄호 {}로 한 번 감싸줘야 한다. 이렇게 하는게 JSX내부에서 주석을 작성하는 방법이고

import React, { Component } from 'react';
import './App.css';

class App extends Component {
  render() {
    return (
      <div>
        {/* 
        멀티라인도 예외가 아니다!
        */}
        <h1>리액트</h1>
      </div>
    );
  }
}

export default App;

가끔씩 컴포넌트 같은걸 선언하게 될 때 여러줄로 입력할 수 도 있다. 즉 h1밑에다가 //를 사용해서 주석을 사용할 수 있다. JSX코드 사이에도 주석을 남겨줄 수 있다. 즉 컴포넌트를 만들어서 something 어쩌고 저쩌고 주석을 남기고 싶다그러면 아래와 같이 하면 된다.

import React, { Component } from 'react';
import './App.css';

class App extends Component {
  render() {
    return (
      <div>
        {/* 
        멀티라인도 예외가 아니다!
        */}
        <h1
        something="asdasdasd" // 내가 여기에 주석을 쓸거야!
        >리액트</h1>
      </div>
    );
  }
}

export default App;

 

 

지금까지 App 컴포넌트만 봤는데 새로운 컴포넌트를 만들어보고 컴포넌트에 전달해주는 props와 내부적으로 들고있는 state에 대해서도 계속 알아보자.

 

 

 

<출처 : velopert(김 민준) 누구든지 하는 리액트: 초심자를 위한 react 핵심 강좌>

https://www.inflearn.com/course/react-velopert/dashboard

 

누구든지 하는 리액트: 초심자를 위한 react 핵심 강좌 - 인프런 | 강의

리액트를 누구든지 쉽고 재밌게 시작 할 수 있도록 만들어진 강좌입니다., React 핵심 강좌 초심자를 위한 리액트(React) 핵심 강좌입니다. 만약에 여러분이 리액트를 배우고 싶은데, 아직 뭐가 뭔

www.inflearn.com

 

'React > velopert_react' 카테고리의 다른 글

State 사용방법  (0) 2021.08.18
Props 사용 방법  (0) 2021.08.18
JSX 기본 문법 알아보기  (0) 2021.08.18
React code 작성 기본  (0) 2021.08.17
React의 Virtual DOM  (0) 2021.08.17