본문 바로가기
코딩/React

리액트 입문(Props 추출)

by junhub 2023. 4. 14.
import React from 'react'
import Child from 'Child'

function App() {
  const name = 'test'
  return <Child age={21} name = {name}>이름</Child>
}

export default App

App.js에서 Child 컴포넌트로 age, name, 이름(children) 으로 보내줬다. 

 

import React from 'react'

function Child({age, name, children}) {
    console.log(age)
    console.log(name)
    console.log(children)
  return (
    <>
    <div>Child</div>
    </>
  )
}


// Child.defaultProps={
//     age : '기본 나이'
// }

export default Child

Child 컴포넌트에서 받은 props를 구조분해할당을 사용해 age, name, children에 할당해서 console을 찍어보면 

이와 같이 나오게 된다. props.age 나 props.name보다 좀 더 직관적으로 코드를 사용할 수 있게 된다. 


# defaultProps

만약 부모 컴포넌트에서 age 값을 보내주지 않고, 자식 컴포넌트에서 age를 찍으려고 한다면 undefined가 나올 것이다. 이때 defaultProps를 지정하면 값이 들어오지 않을때 기본으로 출력되는 값을 지정할 수 있다. 

이후에 부모 컴포넌트에서 name props가 오게되면 설정된 defaultProps는 사라지고 내려 받은 props로 값이 바뀌게 된다. 

 

// components/Child.js

import React from 'react';

function Child({ name }){
	return <div>내 이름은 {name} 입니다. </div>
}

// 이렇게 설정합니다.
Child.defaultProps={
	name: '기본 이름'
}

export default Child

이렇게 defaultProps를 설정하면, 부모 컴포넌트로부터 아직 props 값을 받지 못했더라고 임시로 props의 값을 채울 수 있다. 그리고 부모 컴포넌트로부터 props가 오게되면 defaultProps 값은 진짜 props 값으로 변경된다. 

'코딩 > React' 카테고리의 다른 글

리액트 입문반(카운터 앱)  (0) 2023.04.14
리액트 입문(State)  (0) 2023.04.14
리액트 입문(Props Children)  (0) 2023.04.14
리액트 입문(Props의 개요)  (0) 2023.04.14
리액트 입문 JSX(JavaScript + XML)  (0) 2023.04.14

댓글