리엑트 컴포넌트

그냥차차·2024년 7월 4일

리엑트

목록 보기
6/10
post-thumbnail

1. 함수형 컴포넌트

  • 함수형 컴포넌트는 단순히 함수로 정의됩니다. 리액트 16.8에서 Hooks가 도입되면서 함수형 컴포넌트에서도 상태와 생명주기 메서드를 사용
import React, { useState, useEffect } from 'react';
const MyComponent = () => {
  const [count, setCount] = useState(0);
  useEffect(() => {
    // 컴포넌트가 마운트된 후 호출됨
    console.log('Component did mount');
  }, []);
  const handleClick = () => {
    setCount(count + 1);
  };
  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={handleClick}>Increment</button>
    </div>
  );
};
export default MyComponent;

2. 클래스형 컴포넌트

  • 리액트 16.8 이전에는 상태(state)와 생명주기 메서드(lifecycle methods)를 사용하기 위해 주로 클래스형 컴포넌트를 사용했음
import React, { Component } from 'react';
class MyComponent extends Component {
  constructor(props) {
    super(props);
    this.state = {
      count: 0
    };
  }
  componentDidMount() {
    // 컴포넌트가 마운트된 후 호출됨
    console.log('Component did mount');
  }
  handleClick = () => {
    this.setState({ count: this.state.count + 1 });
  };
  render() {
    return (
      <div>
        <p>Count: {this.state.count}</p>
        <button onClick={this.handleClick}>Increment</button>
      </div>
    );
  }
}
export default MyComponent;

3. 두 컴포넌트의 차이점

  • useState
    • 클래스형 컴포넌트 : this.state와 this.setState를 사용하여 상태를 관리함
    • 함수형 컴포넌트 : useState를 사용하여 상태를 관리함
  • 생명주기
    • 클래스형 컴포넌트 : componentDidMount, componentDidUpdate, componentWillUnmount 등의 생명주기 메서드를 사용함
    • 함수형 컴포넌트 : useEffect를 사용하여 생명주기 메서드와 비슷한 기능을 구현함
  • Hook
    • 클래스형 컴포넌트 : Hooks를 사용못함
    • 함수형 컴포넌트 : Hooks를 사용하여 사이드 이펙트를 처리할수있음
  • 생명주기
    • 클래스형 컴포넌트 : 마운트, 업데이트, 언마운트 등 클래스형 컴포넌트와 함수형 컴포넌트 모두 생명주기를 관리할 수 있음
    • 함수형 컴포넌트 : 함수형 컴포넌트는 useEffect, useLayoutEffect 등의 Hook을 사용하여 생명주기를 관리함
profile
개발작

0개의 댓글