[React] 1. Component

Sunghoman·2022년 10월 1일

React

목록 보기
2/5
post-thumbnail

역사적인 첫 번째 리액트 컴포넌트

import React from 'react'; // 사실 이거 이제 import 안해도 됨

function Hello() {
	return <div>Hello World!!!</div>
}

export default Hello;

엥 이건 함수 아닌가여?

넹 맞아여 근데 리액트는 이런걸 뚝딱뚝딱 이어 붙여서
웹페이지 만듭니다.

레고 블럭이라고 생각하세여

jsx문법인데, 자바스크립트 문법으로 html 짤 수 있게 하는거에여


이거 벨로그인데, 이것도 리액트로 만들었음

일반적인 html로 만들면

<body>
  <header>
    <div>벨로그 로고</div>
    <button>다크모드, 라이트모드</button>
    <button>검색 버튼</button>
    <button>새 글 작성</button>
    <img src="내 프로필 사진" />
  </header>
  <div>
    내 프로필 정보
  </div>
  <ul>
    <h4>태그 목록</h4>
    <li>전체 보기</li>
    <li>시리즈1</li>
    <li>시리즈2</li>
    <li>시리즈3</li>
    <li>시리즈4</li>
  </ul>
</body>

뭐 대충 이렇게 짤 듯

우린 리액트로 짤거니까,
일단, 우리가 모니터에서 눈으로 보이는 대로 일단 화면을 그려보자구여


어때여 좀 비슷한가여? 제가 파워뽀인트로 만들었어요 ㅎㅎ

우리가 보는 웹사이트를 이렇게 덩어리 덩어리로 나눌 수 있져?

리액트는 이거대로 각각 hmtl 짠다음 하나로 합쳐서,

하나의 html 파일로 반환해줍니다.

근데 덩어리라고 부르면 쨰네가 좀 기분나쁠거잖아여

컴포넌트라고 불러줍시다

컴포넌트 별거 없네여

넹 별거 없읍니다.

이제, 저 컴포넌트(덩어리)들을 하나씩 만들러 가보자구여

import React from 'react'; // 사실 이거 이제 import 안해도 됨

function Header() {
	return (
        <header>
          <div>벨로그 로고</div>
          <button>다크모드, 라이트모드</button>
          <button>검색 버튼</button>
          <button>새 글 작성</button>
          <img src="내 프로필 사진" />
        </header>
    )
}

export default Header;

이제 좀 눈에 들어오시나용?

html 파일에서, body 태그 안에서 하나로 쭉~~~ 짠걸,

layout 별로, 혹은 기능 별로 나누어서 작업하면 됩니다.

그걸 함수로 선언해서, 내보내주고,(export)

최상단 파일인 App.js에서 받으면(import) 됩니당

근데 함수로 선언한다고 했으니까,
저 안에서 html만 짤게 아니라,
변수도 선언 가능하고, 데이터도 조작하고, 그런거 되는거 아님?

네 가능해요

근데 그걸 우리는 각각, state(변수 선언), props(데이터 주고받고) 라고 부르기로 했음

한 줄 요약
컴포넌트는 html 덩어리다

profile
쉽게만 살아가면 개재밌어 빙고

0개의 댓글