{/* 일반 사용법 */}
<ClassComponent></ClassComponent>
{/* props 사용법 */}
<ClassComponent title="제목" content"내용></ClassComponent>
<FuncComponent name="코딩온"></FuncComponent>
{/* 부모 컴포넌트에서 name props 전달*/}
{/* 자식 컴포넌트에서 name props 받음*/}
const FuncComponent = (props) => {
return(
<>
<div>안녕? **{props.name}**</div>
<div>반가워 !</div>
</>
)
}
FuncComponent.defaultProps = {
nmae: '홍길동'
}
<FuncComponent name="코딩온">**자식 내용**</FuncComponent>
{/* 자식 컴포넌트*/}
const FuncComponent = (props) => {
return(
<>
<div>안녕? **{props.name}**</div>
<div>반가워 !</div>
<h4>**{prop.children}**/<h4>
</>
)
}
impport PropTypes from "prop-types";
FuncComponent.propTypes = {
name: PropTypes.string
}
class ClassComponent extends Component {
render() {
return(
<h1>Class component 입니다. 이름은 { this.props.name }</h1>
);
}
static defaultProps = {
name: "기본 이름"
};
static propTypes = {
name: PropTypes.string
}
}
{/* 다른 형식 */}
ClassComponent.defaultProps = {
name: '홍길동'
}
.ClassComponent.propTypes = {
name: PropTypes.string
}
이제는 props 관련 리액트 예제 문제를 풀어보자.
class App extends Component {
render() {
const printConsole = () => {
console.log('콘솔 띄우기 성공!');
}
return (
<div className="App">
<ClassComponent text='dd'/>
import { Component } from 'react'
import PropTypes from 'prop-types';
export default class Ex01 extends Component {
render() {
const {text, valid} = this.props;
return (
<>
<div>{text}</div>
<button onClick={valid}>버튼</button>
</>
)
}
}
Ex01.defaultProps = {
text: '이건 기본 text props입니다.'
}
Ex01.propTypes = {
text: PropTypes.string.isRequired,
}
import React, { Component } from 'react'
export default class Ex02 extends Component {
// state 사용
state = {
number: 0,
}
render() {
const { number } = this.state;
return (
<>
<h2>{number}</h2>
<button onClick={() => {
this.setState({number: number + 2});
}}>plus</button>
<button onClick={() => {
this.setState({number: number - 1});
}}>minus</button>
</>
)
}
}
import { useState } from "react"
const Ex03 = () => {
const [number, setNumber] = useState(0);
const increase = () => {
setNumber(number + 1);
}
const decrease = () => {
setNumber(number - 2);
}
return (
<>
<h1>{number}</h1>
<button onClick={increase}>plus</button>
<button onClick={decrease}>minus</button>
</>
)
}
export default Ex03
리액트 props에 대한 개념 정리와 문제를 통해 이해할 수 있는 시간을 가졌다.
프론트엔드의 중요한 부분을 차지하기에 많이 연습을 해야 할 거 같다.
[코딩온] 웹개발자 풀스택 과정 12주차 ppt