[Javascript] JSX 기본 문법

2022. 3. 2. 14:10·Javascript/React

 

0. React 시작

 

  • 리액트 시작하기 링크: Tutorial: Intro to React
  • Node JS 설치: https://nodejs.org/ko/
  • 리액트 설치: https://reactjs-kr.firebaseapp.com/docs/installation.html

 

 


1. return할 때 하나의 DOM만 리턴할 수 있다.

 

아래 코드를 보자. return 안에 div 태그로 묶여있는 것을 확인할 수 있다. return되는 DOM이 1개이다.

html 파일에 전달하면 div태그의 내용이 정상적으로 출력될 것이다.

import logo from './logo.svg';
import './App.css';

function App() {
  return (
    <div>
      this is react program
      <h1>Title</h1>
      <hr/>
    </div>
  );
}

export default App;

 

 

오류의 예시

아래의 코드는 div 태그, h1 태그, hr 태그 3개의 DOM이 묶여있지 않고 독립적으로 존재한다.

return할 때 1개의 DOM만 리턴할 수 있기 때문에 오류가 발생한다.

import logo from './logo.svg';
import './App.css';

function App() {
  return (
    <div>this is react program</div>
    <h1>Title</h1>
    <hr/>
  );
}

export default App;

 

 

 


2. 자바스크립트 변수 사용하기

 

  • var보다는 let과 const를 사용하자.

var은 적용 범위(Scope)가 넓다. 어떤 함수 안에서 var을 통해 변수를 선언하면 그 함수 밖에서도 변수를 사용할 수 있어 프로그램에 혼란을 줄 수 있다. 블록 스코프의 범위를 가진 지역 변수를 선언하는 let을 사용하거나 상수를 선언하는 const를 사용하도록 하자.

 

 

  • JSX 내부에서 변수 사용하기

{변수이름} 형태로 넣어주면 변수를 인식해 return 해준다.

import logo from './logo.svg';
import './App.css';

function App() {
  let num = 30;
  return (
    <div>
      <div>this is react program </div>
      <h1>Title {num}</h1>
      <hr/>
    </div>
  );
}

export default App;

 

 

 


3. 조건문 사용하기

 

JSX에서는 if문을 사용할 수 없다. 대신 삼항연산자와 조건부 렌더링을 사용할 수 있게 해준다. 

 

  • 삼항연산자

삼항연산자의 형태는 다음과 같다. {조건(불리언) ? (true일 때)값 : (false일 때)값}

import logo from './logo.svg';
import './App.css';

function App() {
  let num = 30;
  return (
    <div>
      <div>this is react program {num === 30 ? "and very good":"and bad"}</div>
      <h1>Title</h1>
      <hr/>
    </div>
  );
}

export default App;

위의 조건은 참이므로 "this is react program and very good" 이라는 내용이 출력될 것이다.

 

  • 조건부 렌더링

반면 조건부 렌더링은 {조건 && (true일 때)값}의 형태로, 참일 경우에만 값을 나타내는 형식이다.

import logo from './logo.svg';
import './App.css';

function App() {
  let num = 30;
  return (
    <div>
      <div>this is react program {num === 10 && "and very good"}</div>
      <h1>Title</h1>
      <hr/>
    </div>
  );
}

export default App;

조건이 false이기 때문에 구문 뒤에 아무런 문자열도 붙지 않게 된다.

 

 

 


4. CSS 사용하기

 

CSS를 사용하는 방법에는 3가지가 있다. 인라인으로 적는 방식, 외부 파일을 가져오는 방식, 라이브러리를 사용하는 방식이다.

 

 

  • 인라인으로 적기

원래 css를 적을 때는 "font-size"라고 적었지만, JSX에서 인라인으로 적을 때는 "fontSize"와 같이 "-"를 사용하지 않고 대문자를 이용한다.

 

import logo from './logo.svg';
import './App.css';

function App() {
  const mystyle = {
    color: "red",
    fontSize: "50px",
  };
  
  return (
    <div>
      <div style={mystyle}>this is react program</div>
      <h1>title</h1>
      <hr/>
    </div>
    
  );
}

export default App;

 

 

  • 외부 파일(App.css)

인라인으로 적는 것과는 다르게 css에서 "-"를 사용할 수 있다. className을 통해 css에서 정보를 가져올 수 있다.

 

- App.css

.mystyle {
  color: red;
  font-size: 50px;
}

 

- App.js

import logo from './logo.svg';
import './App.css';

function App() {
  
  return (
    <div>
      <div className="mystyle">this is react program</div>
      <h1>title</h1>
      <hr/>
    </div>
    
  );
}

export default App;

 

'Javascript/React' 카테고리의 다른 글
  • [Javascript] React와 불변성, 그리고 배열
gakko
gakko
좌충우돌 개발기
  • gakko
    MYVELOP 마이벨롭
    gakko
  • 전체
    오늘
    어제
    • 분류 전체보기 (203)
      • Spring (23)
        • Spring (10)
        • Spring Boot (7)
        • Spring Security (1)
        • Hibernate (4)
      • Test (3)
      • 끄적끄적 (6)
      • 활동 (35)
        • 부스트캠프 (23)
        • 동아리 (3)
        • 컨퍼런스 (3)
        • 글또 (5)
        • 오픈소스 컨트리뷰션 (1)
      • 디자인패턴 (0)
      • Git & GitHub (22)
        • Git (13)
        • Github Actions (1)
        • 오류해결 (5)
        • 기타(마크다운 등) (3)
      • 리눅스 (6)
        • 기초 (6)
        • 리눅스 서버 구축하기 (0)
      • Infra (2)
        • Docker (1)
        • Elastic Search (0)
        • Jenkins (1)
        • AWS (1)
      • MySQL (7)
        • 기초 (6)
        • Real MySQL (1)
      • 후기 (3)
        • Udemy 리뷰 (3)
      • CS (26)
        • 웹 기본지식 (0)
        • 자료구조 (13)
        • 운영체제 OS (12)
        • 데이터베이스 (1)
        • 시스템 프로그래밍 (0)
        • 기타 (0)
      • Tools (1)
        • 이클립스 (1)
        • IntelliJ (0)
      • 프로젝트 (1)
        • 모여모여(부스트캠프) (1)
      • JAVA (32)
        • Maven (6)
        • 오류해결 (11)
        • 자바 클래스&메소드 (1)
        • JSP & Servlet (12)
      • Javascript (5)
        • 기초 (3)
        • React (2)
      • Python (28)
        • 파이썬 함수 (9)
        • 알고리즘 문제풀이 (16)
        • 데이터 사이언스 (2)
        • 웹 크롤링 (1)
      • 단순정보전달글 저장소 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 우진님
  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    Python
    os
    java
    웹개발
    GitHub
    파이썬
    MySQL
    Spring
    jsp
    운영체제
    오류해결
    스프링부트
    부스트캠프 멤버십
    부스트캠프 7기
    Git
    자바스크립트
    자바
    부스트캠프
    스프링
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
gakko
[Javascript] JSX 기본 문법
상단으로

티스토리툴바