props 렌더링하기 ⇒ props 값 설정하기 ⇒ props 기본 값 설정하기 ⇒ props 값 검증하기
import React, {Componenet} from 'react';
class One extends Coponent {
render() {
return (
<div>
**//props에 접근 할 떄는 this 키워드를 사용하여 접근**
안녕하세요, 제 이름은 **{this.props.name}**
</div>
);
}
}
export default One;
2. 컴포넌트 사용할 때 props 값 설정
props 값을 설정하는 방법은 HTML 태그에 속성을 설정하는 것과 비슷합니다.
import React, {component} from 'react';
import One from './one.js';
class App extends Coponenet {
render() {
return (
<One name = '홍길동'/>
);
}
}
export default App;
3. props 기본 값 설정 : defaultProps
방금 설정한 name 의 값을 없애면 현재 name 값을 지정하지 않았기 때문에 "안녕하세요, 제 이름은" 만 나옵니다. props 값을 지정하지 않았을 때 기본 값으로 설정하는 defaultProps를 알아봅시다.
1 ) class 밖에서 만드는 방법
import React,{Component} from 'react';
class One extends Coponent {
(...)
}
One.defaultProps = {
name : 'default name'
}
export default MyComponent;
2) class 내부에서 정의하는 방법.
import React,{Component} from 'react';
class One extends Coponent {
static defaultProps = {
name : 'default name'
}
(...)
}
export default MyComponent;
import PropTypes from 'prop-types';
import React, {Component} from 'react'
import propType from 'prop-types';
class One extends Component {
(...)
}
One.propTypes = {
name : propTypes.string //name props 타입을 문자열로 설정
}
export default MyComponent;
import React, {Component} from 'react'
import propType from 'prop-types';
import React,{Component} from 'react';
class One extends Coponent {
static defaultProps = {
name : 'default name'
}
static propTypes = {
name : propTypes.string // name props 타입을 문자열로 설정
}
(...)
}
export default MyComponent;
//App.js
<One name = {3}/>
{}
으로 감싼 이유는??? ⇒ '문자열' 이외 값을 컴포넌트에 전달 할 때는 {}
로 감싸야 합니다.