[React.js] JSX

2022. 5. 7. 13:13·공부/React.js
반응형

 

React 게시글은 대부분 인프런의 '한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지' 강의를 기반으로 내용을 정리했습니다.

 

JSX

JSX는 자바스크립트의 확장 문법이며 자바스크립트와 html을 혼합하여 사용할 수 있는 리액트에서 주로 사용하는 표현식이다.

 

JSX를 사용해보자. 전에 만들었던 reactexam1 프로젝트를 실행시키고 src 경로에 MyHeader.js를 새로 생성한다.

const MyHeader = () => {
    return <header>헤더</header>; 
    // 컴포넌트는 return이 없으면 에러가 난다.
}; 

export default MyHeader;

 

그리고 우리가 만든 MyHeader 컴포넌트를 사용하기 위해 App.js로 이동해 import 시킨다.

import './App.css';
import MyHeader from './MyHeader'; // import 추가

function App() {

  let name = "레호";
  return (
    <div className="App">
      <MyHeader/>    <!--일반 태그 사용하는 방식처럼 호출하면 된다.-->
      <header className="App-header">
      <h2>안녕 리액트 {name}</h2>
      </header>
    </div>
  );
}

export default App;

개발자 도구를 이용해 elements를 확인해보면 MyHeader가 잘 껴져있는 걸 확인할 수 있다.

반응형

index.js

최상위 컴포넌트는 현재 "App"이다.

최상위 컴포넌트를 변경하고 싶다면 index.js 파일을 수정해야 한다.

이 두 개의 부분을 수정하면 된다. 근데 관례상 최상위 컴포넌트를 App이라고 하니까 굳이 수정할 필요는 없을 것 같다.

 

JSX 문법

닫힌 규칙

여는 태그가 있으면 반드시 닫는 태그가 있어야 한다.

<div></div>
<div /> <!--self closing tag-->

최상위 태그 규칙

JSX를 컴포넌트로 만들어서 리턴하려면 반드시 최상위 태그로 묶고 리턴해야 한다. 만약 최상위 태그를 사용하기 싫다면 react.fragment 기능을 사용하면 된다. react.fragment를 사용하려면 먼저 import 작업이 필요하다. react의 기능이기 때문에 react를 import 한다.

import React from 'react';

function App() {
  return (
    <React.Fragment>
      <MyHeader/>
      <header className="App-header">
      <h2>안녕 리액트</h2>
      </header>
      <MyFooter/>
    </React.Fragment>
  );
}

or

function App() {
  return (
    <> <!--빈 태그로도 React.Fragment를 사용-->
      <MyHeader/>
      <header className="App-header">
      <h2>안녕 리액트</h2>
      </header>
      <MyFooter/>
    </>
  );
}

개발자 도구로 확인해보면 감싸져 있지 않은걸 확인할 수 있다.

 

반응형
저작자표시 비영리 변경금지 (새창열림)
'공부/React.js' 카테고리의 다른 글
  • [React.js] Props
  • [React.js] State(상태), Counter 예제 만들기
  • [React.js] Create React App - 프로젝트 생성, 실행, 종료
  • [React.js] Why React.js
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    방통대
    알고리즘
    Spring
    JPA
    IT
    SpringBoot를 이용한 RESTful Web Service 개발
    react
    springboot
    oracle
    프론트엔드
    에러해결
    넥사크로
    스프링부트
    SQL
    Java
    QueryDSL
    코딩테스트
    백준
    RESTful
    인프런
    egov
    토이프로젝트
    프로그래머스
    운영체제
    자바스크립트
    전자정부프레임워크
    토비의스프링부트
    개발자
    기출문제
    MSA
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
[React.js] JSX
상단으로

티스토리툴바