Hazel Han
Midnight In Coding
Hazel Han
전체 방문자
오늘
어제
  • 분류 전체보기 (46)
    • Back-end (6)
      • java (0)
      • spring frameworks (6)
      • spring boot (0)
    • Front-end (29)
      • React (7)
      • Javascript (0)
      • html (7)
      • css (15)
    • DB (0)
    • Algorithms (2)
    • 회고록 (9)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Java
  • 스프링
  • css
  • 저스트코드
  • 회고록
  • 스프링프레임워크
  • HTML
  • React
  • 남궁성
  • Spring
  • justcode
  • 자바
  • 자바의정석
  • 리액트
  • springframeworks
  • 기술블로그
  • coding
  • 개발자
  • 코딩
  • 프로그래밍

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Hazel Han

Midnight In Coding

Front-end/React

[JUSTCODE] Advanced Foundation - React 재사용 컴포넌트

2022. 10. 29. 22:22

컴포넌트

UI 중 비슷한 구조를 가진 것들을 하나로 묶어서 분리하는 것을 말한다.

 

장점

  1. 유지보수가 쉽다.
  2. 명시적이다.
  3. 재사용성이 좋다.

사용방법

  1. 화면을 보고 구조가 비슷하거나 같은 묶음을 확인한다.
  2. 각 요소에 내려줄 prop의 구조를 확인한다. (prop로 자식 컴포넌트에 내려줄 때는 자식 컴포넌트 파일을 import한다.)
  3. mock 데이터를 만들어서 가져온다. or back-end와 통신하여 데이터를 db에서 가져온다.
  4. css 파일도 각자 컴포넌트에 맞게 분리한다.

ex)

부모 컴포넌트

// Modal.js
function Modal() {
  return (
    <div className="Modal">
			<Form type="signUp" title="회원가입" inputData={signUpData} />
    </div>
  );
}

const signUpData = [
  {
		id:1, 
    type: "name",
    text: "이름",
  },
  {
		id:2,
    type: "email",
    text: "이메일",
  },
  {
		id:3,
    type: "password",
    text: "비밀번호",
  },
]

signUpProps는 <Form />의 props로 전달되어 자식 컴포넌트에서 데이터를 받아올 수 있다.

 

자식 컴포넌트

// Form.js
import FormLayout from "./FormLayout"

// 일부 생략된 코드가 있습니다!
function Form(props) {
  const { type, title, inputData } = props;
  return (
    <FormLayout>
      <h2>{title}회원가입</h2>
			<div />
      <div>
        {inputData.map((input) => (
          <Input
            key={input.id}
            type={input.type}
            text={input.text}
          />
        ))}
      </div>
      <Button value={title} />
      {type === "signUp" && (
        <p className="isAlreadyLogin">
          이미 가입하셨나요? <span>로그인</span>
        </p>
      )}
    </FormLayout>
  );
}
저작자표시 (새창열림)

'Front-end > React' 카테고리의 다른 글

[JUSTCODE] Advanced Foundation - React dvanced Router  (0) 2022.10.29
[JUSTCODE] Advanced Foundation - React (리)렌더링, 조건부 렌더링  (0) 2022.10.29
[JUSTCODE] Basic Foundation - React useEffect  (0) 2022.10.24
[JUSTCODE] Basic Foundation - React useState, props  (0) 2022.10.24
[JUSTCODE] Basic Foundation - React Router, Saas  (0) 2022.10.20
    'Front-end/React' 카테고리의 다른 글
    • [JUSTCODE] Advanced Foundation - React dvanced Router
    • [JUSTCODE] Advanced Foundation - React (리)렌더링, 조건부 렌더링
    • [JUSTCODE] Basic Foundation - React useEffect
    • [JUSTCODE] Basic Foundation - React useState, props
    Hazel Han
    Hazel Han

    티스토리툴바