리액트 스터디 4탄) props

2022. 7. 12. 15:47·웹/리액트

리액트를 다루는 기술을 참고하여 기술하였습니다.


jsx란?

jsx는 자바스크립트의 확장 문법이다.

브라우저에서 코드가 실행되기 전 여러개의 모듈들이 합쳐지는 코드 번들링을 하게 되며 이때, barbel을 이용해서 일반 자바스크립트 형태의 코드로 변환한다.

props

부모 컴포넌트에서 state를 전달 받을때 사용함.

const Mycomponent=(props)={
	return <div> 안녕하세요 제 이름은 {props.name} 입니다.</div>	
};

Mycomponent.defaultProps ={ name : '기본이름'};

export default Mycomponent;

이렇게 작성하게 되면, props가 없을 때도, 기본값을 정해줄수 있다.

컴포넌트이름.defaultProps ={};

props는 컴포넌트에서 데이터를 보내주는 방법이다.(app.js파일에서 하위 컴포넌트로 정보를 보내줄때, 사용하는 방법이라고 생각하면 좀 쉬울듯)

즉 부모컴포넌트에서 자식 컴포넌트로 데이터를 보내줄때, 사용하게 됨.

props.children

props에서는 부모 컴포넌트에서 자식컴포넌트로 데이터를 보내줄때, 사용하지만 이는 어떤 데이터가 들어오는지 확실히 알때, 사용가능하다.

하지만 그렇지 않을때는, children을 사용하게 된다.

  • 단순히 말하면 컴포넌트 사이에 작성한 문자열이나, 값을 표현하기 위해서 사용한다.
function App()={
<div className='App'>
	<Container>
		<ul>
			<li>one</li>
			<li>two</li>
		<ul>
	</Container>
</div>
};

이런 app.js에서 Container이라는 컴포넌트에게 태그 사이에 있는 값을 보내고 싶을때, children을 사용하게 된다.

import React from 'react'

function Content({children}){
return (
	<div>
		<h2> anything</h2>
		{children}
	</div>
)};
export default Comtent

이렇게 되면, 처음 App.js에서 작성했던, ul태그 전체가 children props로 전달되고, 최종적으로 content는

import React from 'react'

function Content({children}){
return (
	<div>
		<h2> anything</h2>
		<ul>
			<li>one</li>
			<li>two</li>
		<ul>
	</div>
)};
export default Comtent

이와 같은 형태가 된다.

props의 타입 정의하기

props를 일정한 타입으로만 받고 싶을때 사용하는 것이다.

방법은 간단하다. defaultProps랑 동일하게 사용하면 되는데 우선 해야할것은 prop-types 를 import 해야한다.

import PropTypes from 'prop-types';

이후 프롭 타입을 정의해주면 된다.

Mycomponent.propTypes ={
name : PropTypes.string
};

이렇게 작성하면 name이라는 prop은 string 타입으로 밖에 입력 받지 못한다.


Uploaded by N2T

반응형

'웹 > 리액트' 카테고리의 다른 글

리액트 스터디 6탄) map(), filter()  (0) 2022.07.12
리액트 스터디 5탄) state  (0) 2022.07.12
리액트 스터디 3탄) virtual DOM  (0) 2022.07.12
리액트 스터디 2탄) 리액트란?  (0) 2022.07.12
리액트 스터디 1탄) mvc 아키텍쳐  (0) 2022.07.12
'웹/리액트' 카테고리의 다른 글
  • 리액트 스터디 6탄) map(), filter()
  • 리액트 스터디 5탄) state
  • 리액트 스터디 3탄) virtual DOM
  • 리액트 스터디 2탄) 리액트란?
진ddang
진ddang
안녕하세요 진땅의 개발자 블로그 입니다. 피드백은 환영입니다. 깃헙 : https://github.com/it794613
    반응형
  • 진ddang
    맛동산이
    진ddang
  • 전체
    오늘
    어제
    • 분류 전체보기 (199)
      • 일기 그리고 목표 (1)
      • 웹 (20)
        • 리액트 (19)
      • 앱 (115)
        • Swift 문법 (15)
        • Swift (65)
        • SwiftUI (32)
        • 리액트 네이티브 (3)
      • CS (30)
        • 컴퓨터그래픽스 (8)
        • 운영체제 (6)
        • 네트워크 (16)
      • 알고리즘 (13)
        • 백준 (12)
        • 프로그래머스 (1)
      • 대외활동 (7)
        • ict한이음(2022.04) (2)
        • 멋쟁이 사자처럼 (5)
        • Apple Developer Academy (0)
      • 다양한 내용들 (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    운영체제
    widgetkit
    spritekit
    Swift
    cs
    스위프트
    백준
    swift concurrency
    웹
    문법
    dispatchqueue
    알고리즘
    컴퓨터그래픽스
    composable architecture
    TCA
    대외활동
    ReactorKit
    SwiftUI
    Protocol
    후기
    영남대
    리액트
    멋쟁이사자처럼
    widget
    스유
    uikit
    c++
    위젯킷
    네트워크
    멋사
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
진ddang
리액트 스터디 4탄) props
상단으로

티스토리툴바