Poylib
기록형 프론트엔드
Poylib
전체 방문자
오늘
어제
  • 분류 전체보기 (91)
    • Programing (38)
      • Javascript (17)
      • Typescript (1)
      • React (9)
      • React-Native (6)
      • Git (4)
      • Next (1)
    • Study (36)
      • Algorithm (35)
      • Etc. (1)
    • Record (17)
      • Memoirs (12)
      • Group (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백준
  • Git
  • vite
  • 회고
  • 코칭스터디
  • Error
  • typescript
  • 기초
  • react
  • react-native
  • 코딩테스트
  • javascript
  • 프로그래머스
  • Object
  • ReactNative
  • 알고리즘
  • 리액트
  • 자바스크립트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Poylib

기록형 프론트엔드

Programing/React

[React] css 모듈과 proptype

2022. 7. 29. 19:06

1. CSS 모듈

클래스 이름을 고유한 값으로 만들어서 컴포넌트 스타일 클래스 이름이 중첩되는 현상을 방지하는 방법이며, 유지보수가 편리해진다.

 

사용 방법

.css 확장자 앞에 .module 을 붙여준다.

.module.css 파일에 클래스명으로 된 속성을 만들어준다.

파일을 import 해주고, 프로퍼티를 호출하는 것처럼 클래스명을 불러와주면 된다. 여러 개의 속성을 가져오려면 백틱(``)을 사용해 감싸준다.

개발자 도구에서 클래스가 적용된 것을 보면 hash 값이 붙은 고유한 값이 부여된 것을 알 수 있다. 따라서 클래스명이 같더라도 덮어씌워지지 않는다.

 

2. proptype

React에 내장된 타입 검사 기능이다. 타입 선언의 장점은 타입 정보를 정의해 둠으로써 다른 사람이 코드를 봐도 컴포넌트 로직의 이해 없이 타입 정보를 한눈에 파악할 수 있다.

 

npm으로 설치할 수 있다.

PropTypes는 부모로부터 전달받은 prop 데이터의 type을 검사한다. 부모와 자식 간 데이터 타입이 일치하지 않으면 콘솔 창에 에러가 발생한다.

 

간단한 예시를 들고 시작하자면 아래와 같다. prop-types를 가져오고, text와 fontSize에 타입을 명시해주었다. text.string.isRequired 는 text에 string 타입만 들어가야 하며, 반드시 prop을 넣어줘야 함을 뜻한다. 즉 text에 number를 넣거나, Button 컴포넌트에 text를 사용하지 않는 경우는 모두 에러가 발생한다. fontSize의 경우는 number만 받을 수 있도록 했다.

string, number 같은 기본적으로 선택할 수 있는 데이터 타입은 다음과 같다.

  optionalArray: PropTypes.array,
  optionalBool: PropTypes.bool,
  optionalFunc: PropTypes.func,
  optionalNumber: PropTypes.number,
  optionalObject: PropTypes.object,
  optionalString: PropTypes.string,
  optionalSymbol: PropTypes.symbol

만약, 복수의 데이터 타입 중 하나가 되도록 하려면 oneOfType([])을 사용한다.

 

이 외에도 하나의 자식만 요구, 초기 prop 값을 설정 등 다양한 기능을 제공하고 있지만, 현재 수준에서 다룰 수 없거나 빈도가 낮아 추후에 더 공부해보기로 한다.

 

 

출처
https://ko.reactjs.org/docs/typechecking-with-proptypes.html
https://velog.io/@eunjin/React-PropTypes-%EC%93%B0%EB%8A%94-%EC%9D%B4%EC%9C%A0-%EB%B0%A9%EB%B2%95
https://www.daleseo.com/react-prop-types/
저작자표시 비영리 변경금지 (새창열림)

'Programing > React' 카테고리의 다른 글

[React] 소셜웹페이지 - 서버 통신 & 로그인  (0) 2022.08.27
[React] 댓글 입력 오류  (0) 2022.08.19
[React] 소셜웹페이지 - 자바스크립트 ➡️ 리액트 변환  (0) 2022.08.17
[React] JSX  (0) 2022.07.05
[React] 시작하기  (0) 2022.07.05
    'Programing/React' 카테고리의 다른 글
    • [React] 댓글 입력 오류
    • [React] 소셜웹페이지 - 자바스크립트 ➡️ 리액트 변환
    • [React] JSX
    • [React] 시작하기
    Poylib
    Poylib
    모시깽 기록

    티스토리툴바