[React] JSX 사용하기

2024. 2. 28. 20:20·Development/React

<></>가 아닌 < />로 사용하는 것을 셀프 클로징 태그라고 한다.

ES Module이란 무엇인가?

  • ES6에 도입된 모듈 시스템.
  • import, export를 사용해 분리된 자바스크립트 파일끼리 서로 접근할 수 있다.

 

CSS 파일을 사용하여 스타일링하기

MyHeader.tsx

내보내기(export)

const MyHeader = () => {
    // 컴포넌트 내에 return 필요
    return <header>헤더</header>;
};


export default  MyHeader;

App.css

.App, h2, #bold_text 추가

.App {
  background-color: black;
}
h2{
  color: red;
}
#bold_text {
  color: green;
}

App.tsx

React에서는 html 태그에서 class 속성 대신 className으로 쓰고 클래스명을 입력할 수 있다. JavaScript에서 class가 예약어이기 때문이다.

가져오기(import)

import './App.css';
import MyHeader from "./MyHeader.tsx";

function App() {
    const name = "test";

    return (
        <>
            <div className="App">
                <MyHeader/>
                <h2>안녕 리액트 {name}</h2>
                <b id="bold_text">react.js</b>
            </div>
        </>
    );
}

export default App;

export default로 정의한 함수를 내보낼 수 있으며, 한번에 한 개의 함수만 export default할 수 있다.

 

인라인 스타일 방식

// import './App.css';
import MyHeader from "./MyHeader.tsx";

function App() {
    const name = "test";

    const style = {
        App: {
            backgroundColor: "black",
        },
        h2: {
            color: "red",
        },
        bold_text: {
            color: "green",
        }
    }

    return (
        <>
            <div style={style.App}>
                <MyHeader/>
                <h2 style={style.h2}>안녕 리액트 {name}</h2>
                <b style={style.bold_text}>react.js</b>
            </div>
        </>
    );
}

export default App;

삼항 연산자, 조건부 렌더링

// import { useState } from 'react'
// import reactLogo from './assets/react.svg'
// import viteLogo from '/vite.svg'
import './App.css';
import MyHeader from "./MyHeader.tsx";

function App() {
    const name = "test";

    const style = {
        App: {
            backgroundColor: "black",
        },
        h2: {
            color: "red",
        },
        bold_text: {
            color: "green",
        }
    };
    const func = () => {
        return "func";
    }

    const number = 5;

    return (
        <>
            <div style={style.App}>
                {/*셀프 클로징 태그*/}
                <MyHeader/>
                <h2 style={style.h2}>안녕 리액트 {name}</h2>
                <h2 style={style.h2}>안녕 리액트 {func()}</h2>
                {/*삼항 연산자, 조건부 렌더링*/}
                <b style={style.bold_text}>
                    {number} 는 : {number % 2 === 0 ? "짝수" : "홀수"}
                </b>
            </div>
        </>
    );
}

export default App;

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

[React] useId()를 사용하다가 삽질한 기록  (4) 2025.05.25
[TypeScript] 고급 타입 활용법: 조건부 타입, 제네릭 심화와 Exclude/Extract 활용  (0) 2025.04.01
[React] 상태 (State)  (0) 2024.02.28
[React] Datepicker 사용하기  (0) 2023.05.02
[React] 리액트 프로젝트 생성하기  (0) 2023.03.13
'Development/React' 카테고리의 다른 글
  • [TypeScript] 고급 타입 활용법: 조건부 타입, 제네릭 심화와 Exclude/Extract 활용
  • [React] 상태 (State)
  • [React] Datepicker 사용하기
  • [React] 리액트 프로젝트 생성하기
곽진돔
곽진돔
Developer
  • 곽진돔
    echo "곽박한 세상";
    곽진돔
  • 전체
    오늘
    어제
    • 분류 전체보기 (184)
      • Development (57)
        • Linux (13)
        • k8s (3)
        • Docker (5)
        • AWS (1)
        • PHP (35)
        • Python (21)
        • Java (1)
        • SpringBoot (4)
        • JavaScript (1)
        • React (8)
        • MySql (19)
        • MongoDB (1)
      • Daily (4)
      • Study (6)
        • TIL (1)
        • license (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 설정
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    CentOS
    JavaScript
    chromedriver
    php
    date
    springboot
    크롤링
    IP
    윈도우
    리액트
    UTF8
    Java
    인코딩
    HTML
    Linux
    MySQL
    Selenium
    docker
    db
    Python
    ssh
    정규표현식
    CentOS7
    Shell
    error
    리눅스
    SQL
    nodejs
    스프링부트
    react
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
곽진돔
[React] JSX 사용하기
상단으로

티스토리툴바