자바 스프링/react & springboot

#1 React 실행흐름, 기본문법

2023. 1. 19. 19:41
목차
  1. React 실행 흐름
  2. JSX 기본 문법

강의 링크 :

https://www.youtube.com/watch?v=qCADzDFiVgo&list=PL93mKxaRDidEfLM0I_FFb-98vfAQgXT82&index=2

https://www.youtube.com/watch?v=OYH_ISVjHR4&list=PL93mKxaRDidEfLM0I_FFb-98vfAQgXT82&index=3 

 

해당 게시글은 위 링크의 강의를 보고 해당 내용을 정리한 게시글입니다!

 

React 실행 흐름

 

package.json : 프로젝트를 관리하는 설정 파일

npm start 를 하면 index.js를 실행시킨다.

render는 데이터를 기반으로 그림을 그리는 것이다.

여기서 <App />을 클릭해보면 App.js로 이동된다.

즉 App.js를 그리겠다는 것이다.

<App /> 이와 같은 문법을 JSX 문법이라고 한다.

HTML문법을 JS에 작성할 수 있는 문법이 JSX 문법이다.

 

document.getElementById('root') 는 어디에다 그릴 것인지를 말한다.
root 라는 Id를 찾는 것으로, querySelector('#root') 와 동일하다.

이 root가 어디에 있냐면,

 public의 index.html에 있다. 이 곳의 div에

반갑다람쥐가 들어가는 것이다.
결국 열리는 파일은 index.html 이다.

 

정리하자면

npm start를 하면 index.js가 우선 실행된다.

그러면 index.js에서

<App /> 을 document.getElementById('root')에 그려 실행하게 된다.

index.html에 있는 root 자리에 내가 만든 <App />을 그려준다는 것이다.

(리턴 값인 <div>반갑다람쥐</div>를 그려준다.)

 

이렇게 JS파일들만 관리하면 되므로 html 파일을 따로 생성할 필요가 없다.

열리는 파일은 index.html 뿐이다.

따라서 페이지가 깜빡이지 않는다. 페이지 이동이 없기 때문이다.

이를 싱글페이지 어플리케이션(SPA) 라고 한다.

(따라서 페이지 요청받는 a 태그 사용 불가능)

페이지 이동 대신 body의 내용이 바뀌는 것이다.

 

 

JSX 기본 문법

 

이렇게 function 안에 들어가있는 <div> ... 와 같은 문법을 JSX 문법이라고 한다.

이와 같이 JSX를 통해 자바스크립트에 HTML을 넣는 방법을 배워보자

 

 

1. return시 하나의 Dom만 리턴할 수 있다.

우선, 리액트는 하나의 태그만 리턴해준다.

return <div> 반갑다람쥐 </div> <h1> 도토리 </h1>; 이렇게 작성하면 오류가 발생한다.

따라서

return <div> <div> 반갑다람쥐 </div> <h1> 도토리 </h1> <hr /> </div>;

와 같이 하나의 태그 안에 넣어줘야 한다.

// App.js
function App() {
  // 참고로 한 줄 일때는 return에 괄호 필요 없는데 두 줄 이상이면 괄호 사용
  return (
    <div>
      <div>반갑다람쥐</div>
      <h1>도토리</h1>
      <hr />
    </div>
  );
}

 

2. 변수 선언은 let 혹은 const로만 해야한다.

스코프가 꼬일 수(헷갈릴 수) 있기 때문에 let 혹은 const만 사용하자.

JSX에선 ${}가 아닌 {}로 변수를 사용할 수 있다.

let a = 1; // 변수
const b = 2; // 상수
function App() {
  return (
    <div>
      <div>반갑다람쥐 {a}</div>
      <h1>도토리 {b}</h1>
      <hr />
    </div>
  );
}

 

3. if 사용이 불가능하다. 대신 삼항연산자를 사용한다.

조건 ? true일 때의 값 : false일 때의 값

let a = 1; // 변수
const b = 2; // 상수
function App() {
  return (
    <div>
      <div>반갑다람쥐 {a === 1 ? '1이다!' : '1이아님..'}</div>
      <h1>도토리 {b}</h1>
      <hr />
    </div>
  );
}

출력결과 )

 

 

4. 조건부 렌더링

조건 && true일 때의 값

let a = 1; // 변수
const b = 2; // 상수
function App() {
  return (
    <div>
      <div>반갑다람쥐 {a === 1 ? '1이다!' : '1이아님..'}</div>
      <h1>도토리 {b === 1 && '도토리도 1이다!'}</h1>
      <hr />
    </div>
  );
}

출력결과 )

 

5. CSS 디자인을 할 수 있는 방법

- 내부에 적는 방법

const myStyle = {
  color: 'red',
};

function App() {
  return (
    <div>
      <div style={myStyle}>반갑다람쥐 {a === 1 ? '1이다!' : '1이아님..'}</div>
      <h1>도토리 {b === 1 && '도토리도 1이다!'}</h1>
      <hr />
    </div>
  );
}

추천하는 방법은 아니라고 한다.

 

 

- 외부 파일에 적는 방법

import './App.css';

App.css에서 작성하면 된다.

(현재 App.css에 작성되어 있는 코드들 다 삭제해주자)

const myStyle = {
  color: 'red',
};

function App() {
  return (
    <div>
      <div style={myStyle}>반갑다람쥐 {a === 1 ? '1이다!' : '1이아님..'}</div>
      <h1 className="box-style">도토리 {b === 1 && '도토리도 1이다!'}</h1>
      <hr />
    </div>
  );
}

실행결과 )

 

 

'자바 스프링 > react & springboot' 카테고리의 다른 글

#4 React useEffect, useMemo, useRef  (0) 2023.02.12
#3 React useState  (0) 2023.02.11
#2 React 배열, 배열 수정  (0) 2023.01.31
#0 React 설치 및 세팅  (0) 2023.01.18
  1. React 실행 흐름
  2. JSX 기본 문법
'자바 스프링/react & springboot' 카테고리의 다른 글
  • #4 React useEffect, useMemo, useRef
  • #3 React useState
  • #2 React 배열, 배열 수정
  • #0 React 설치 및 세팅
daramG
daramG
dotori Java
daramG
다람쥐의 개발 블로그
daramG
전체
오늘
어제
  • 분류 전체보기 (193)
    • Java 코딩테스트 공부 (67)
      • Java 알고리즘 공부 (37)
      • Java 백준 문제풀이 (27)
      • Java 코테 나만의 팁 (3)
    • SQL Study (0)
      • Programmers SQL 문제풀이 (0)
      • SQLP 준비 (0)
    • 웹 개발 지식 정리 (0)
      • Servlet (0)
      • Java 정리 (0)
    • 자바 스프링 (45)
      • 스프링 공부 (4)
      • 스프링 게시판 프로젝트 (6)
      • 부트 블로그 JPA 프로젝트 (30)
      • react & springboot (5)
      • 스프링 오류창고 (0)
      • 리액트 + 스프링 프로젝트 (0)
      • pf (0)
      • pfError (0)
    • React (6)
      • React 정리 (3)
      • React 오류 창고 (3)
    • C++ 코딩테스트 공부 (중단) (20)
      • c++ 백준 문제풀이 (15)
      • c++ 알고리즘 공부 (5)
    • Unity (3)
      • Unity 공부 (3)
    • WebRTC (2)
      • WebRTC 강의학습 정리 (0)
      • WebRTC 프로젝트 (1)
    • 김영한님의 스프링 강의 학습 (10)
      • 스프링 강의 목차 (1)
      • 인텔리제이 & 스프링 기초 (1)
      • 스프링 핵심 원리 (8)
    • 전공 지식 정리 (40)
      • interview (0)
      • Java (0)
      • 운영체제 (4)
      • 데이터베이스 설계 (10)
      • 소프트웨어 공학 (3)
      • 유닉스 (14)
      • 디지털 논리회로 (0)
      • 인공지능 (7)
      • js (0)
      • etc (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 김영한의 스프링 핵심 원리
  • 백준 c++
  • 디지털 논리회로
  • 데이터베이스 설계
  • C++ 알고리즘
  • React&Spring 강의수강
  • 김영한 스프링 강의
  • Unity 공부
  • 운영체제
  • 인공지능
  • java
  • java 알고리즘
  • Java 코테 나만의 팁
  • 김영한 스프링 입문
  • 노마드코더의 zoom클론코딩
  • 유닉스
  • 무서운 이야기
  • 부트 jpa 게시판 프로젝트
  • Java 백준 문제풀이
  • 스프링부트 블로그 프로젝트
  • 스프링 프로젝트
  • 코테 알고리즘
  • 스프링 공부
  • 스프링부트 프로젝트

최근 댓글

최근 글

hELLO · Designed By 정상우.
daramG
#1 React 실행흐름, 기본문법
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.