티스토리 뷰

FRONT-END/REACT

[REACT] PROPS

진심스테이크 2019. 1. 3. 15:11

 

props (properties) : 컴포넌트 속성을 설정할 때 사용

- 부모 컴포넌트가 자식 컴포넌트에 주는 값

- 값을 받아오기만 할 뿐, 수정 불가

 

- MyComponent.js

import React, {Component} from 'react';

class MyComponent extends Component {
    render(){
        return (
            <div>
                안녕하세요 제 이름은 {this.props.name} 입니다.
            </div>
        )
    }
}

 export default MyComponent;

 

- App.js

import React, { Component } from 'react';
import MyComponent from './MyComponent';

class App extends Component {
  render() {
    return (
      <MyComponent name="react"/>
    );
  }
}

export default App;

 

defaultProps : props 값을 지정하지 않았을 때 기본 값으로 설정

- MyComponent.js

import React, { Component } from 'react';

class MyComponent extends Component {
    static defaultProps = {
        name: '기본 이름'
    }
    render() {
        return (
            <div>
                안녕하세요 제 이름은 {this.props.name} 입니다.
            </div>
        )
    }
}

export default MyComponent;

 

propTypes : 컴포넌트의 필소 props를 지정하거나 props 타입을 지정

- MyComponent.js

import React, { Component } from 'react';
import PropTypes from 'prop-types';

class MyComponent extends Component {
    static defaultProps = {
        name: '기본 이름'
    }

    static propTypes = {
        name : PropTypes.string, //name props 타입을 문자열로 설정
        age : PropTypes.number.isRequired //필수적으로 존재, 숫자
    }

    render() {
        return (
            <div>
                안녕하세요 제 이름은 {this.props.name} 입니다.
                저는 {this.props.age}살 입니다.
            </div>
        )
    }
}

export default MyComponent;

 

- App.js

import React, { Component } from 'react';
import MyComponent from './MyComponent';

class App extends Component {
  render() {
    return (
      <MyComponent name="react" age={4}/>
    );
  }
}

export default App;

 

- propTypes 종류

array 

배열 

bool 

참, 거짓 

func 

함수 

number

숫자 

object 

객체 

string 

문자열 

any

아무 종류 

symbol

ES6 문법의 심벌 개체

node 

랜더릴 가능한 모든 것 (숫자, 문자열, element 등) 

instanceOf( )

특정 클래스의 인스턴스 

oneOf([ ])

주어진 배열 요소 중 값 하나 

oneOfType([ ])

주어진 배열 안의 종류 중 하나 

arrayOf( )

주어진 종류로 구성된 배열

objectOf( )

주어진 종류의 값을 가진 객체 

shape({ })

주어진 스키마를 가진 객체 

 

'FRONT-END > REACT' 카테고리의 다른 글

[REACT] REF  (0) 2019.01.03
[REACT] STATE  (0) 2019.01.03
[REACT] JSX  (0) 2019.01.02
[REACT] REDUX  (0) 2018.10.22
[REACT] 기본 설정 및 설치  (0) 2018.10.19
댓글