[React] Props, State

2021. 1. 8. 01:18React/React

1. Props

부모 컴포넌트에서 자식 컴포넌트에 값을 전달할 때 사용한다.

import React, { Component } from 'react';

class MyName extends Component {

  static defaultProps = {
    name: "기본값"
  }

  render () {
    return (
      <div>
        부모로 부터 받은 값은 <b>{this.props.name}</b>입니다.
      </div>
    )
  }
}

export default MyName;
import React, { Component } from "react";
import MyName from './MyName';

class App extends Component {
  render() {
    return (
      <MyName name="부모값"/>
    );
  }
}

export default App;

 

 

 

2. 함수형 컴포넌트

컴포넌트를 만들 때 클래스를 이용하여 만들지만, 함수형 컴포넌트는 주로 기능이 없이 그대로 화면에 보여주는 경우에 사용한다. 함수형 컴포넌트는 초기 마운트 속도가 미세하게 더 빠르고 불필요한 기능이 없기 때문에 메모리 자원을 덜 사용한다는 장점을 가지고 있다.

import React from 'react';

const MyName = ({name}) => {
  return (
    <div>
      부모로 부터 받은 값은 <b>{this.props.name}</b>입니다.
    </div>
  )
};

MyName.defaultProps = {
  name: '기본값'
};

export default MyName;

 

 

 

3. State

State는 컴포넌트 자신이 가지고 있는데, 이는 내부에서 setState함수를 이용하여 변경할 수 있다.

import React, { Component } from 'react';

class Counter extends Component {

  state = {
    number: 0
  }

  // Arrow Function을 사용하지 않을 경우 'this' 인식을 할 수 없다.
  // 만약 일반 함수처럼 사용할 경우 constructor를 사용해야한다.
  /*
  constructor(props) {
    super(props);
    this.handleIncrease = this.handleIncrease.bind(this);
    this.handleDecrease = this.handleDecrease.bind(this);
  */
  
  handleIncrease = () => { 
    this.setState({
      number: this.state.number + 1
    })
  }

  handleDecrease = () => {
    this.setState({
      number: this.state.number - 1
    })
  }

  render() {
    return (
      <div>
        <h1>카운터</h1>
        <div>값: {this.state.number}</div>
        <button onClick={this.handleIncrease}>+</button>
        <button onClick={this.handleDecrease}>-</button>
      </div>
    );
  }
}

export default Counter;

 

728x90

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

[React] React 작업 환경 설정  (0) 2021.01.08
[React] LifeCycle API  (0) 2021.01.08
[React] JSX 기본 문법, 스타일  (0) 2021.01.08
[React] React  (0) 2021.01.07