얘도 이미 알고 있다~
const MyComponent = () => {
return <div></div>;
};
난 화살표 함수 좋아해여 간결함.
암튼 여기도 많이 해봤으니 굳굳
properties를 줄인 표현. 컴포넌트 속성을 설정할 때 사용

얘 보면 MyConponent를 App에 불러왔으니 부모는 누구? App.js
그럼 앱.js에서 설정을 하면 되겠죵~?
ㅇㅋㅇㅋ 예전에는 이거 이해 못했는데 이제 함 ㅎ
<MyComponent name="React" />
이렇게 넘겨주면
const MyComponent = (props) => {
return <div>{props.name}안뇽</div>;
};
props를 파라미터로 받아서 props.name으로 사용~!
Props를 지정하지 않았을 때. 기본값을 설정
const MyComponent = (props) => {
return <div>{props.name}안뇽</div>;
};
MyComponent.defaultProps = {
name: '기본이름',
};
이렇게 해당 컴포넌트에서 디폴트 값을 주면 됩니다
컴포넌트 태그 사이의 내용을 보여주는 props
무슨 소리냐하면
<MyComponent>children</MyComponent>
부모 컴포넌트에서 이렇게 자식 컴포넌트 사이에 내용 전달
<div>{props.children}</div>
MyComponent가 이렇게 받으면

또로롱~
아까 props.name, props.children 하면 귀찮티비..
그래서 비구조화 할당 문법 사용하여 바로 추출
const MyComponent = (props) => {
const { name, children } = props;
return (
<>
<div>{name}안뇽</div>
<br />
<div>{children}</div>
</>
);
};
객체 값을 추출하는 문법 : 비구조화 할당, 구조 분해 문법
const MyComponent = ({ name, children }) => {
return (
<>
<div>{name}안뇽</div>
<br />
<div>{children}</div>
</>
);
};
props를 이렇게 사용하면 더 편하지용~?
propTypes를 통해서 props 타입을 지정할 수 있음
import PropTypes from 'prop-types';MyComponent.propTypes = {
name: PropTypes.string,
};이렇게 name을 string 타입으로 지정.
name을 int로 넘겨주면?
Failed prop type: Invalid prop `name` of type `number` supplied to `MyComponent`, expected `string`.
개발자도구에서 오류 발생
필수 propTypes 설정
MyComponent.propTypes = {
name: PropTypes.string,
fNum: PropTypes.number.isRequired,
};
안주면 없다고 오류 발생~
Warning: Failed prop type: The prop `fNum` is marked as required in `MyComponent`, but its value is `undefined`.
좋아 아는 내용이니 수월하다
class MyComponent extends Component {
render() {
const { name, fNum, children } = this.props;
return (
<>
<div>{name}</div>
<div>{fNum}</div>
<div>{children}</div>
</>
);
}
}
this.props로 비구조화 할당class MyComponent extends Component {
static propTypes = {
name: PropTypes.string,
};
render() {
...
}
}