개발공부/리액트

[리액트] 함수형 컴포넌트 / 클래스형 컴포넌트

햄❤️ 2021. 6. 3. 13:34
728x90

리액트에서 컴포넌트를 선언하는 방식은 두가지가 있다.

 

 

 클래스형 컴포넌트 

 -  상태를 저장할 수 있고(state사용이 가능함), React Life Cycle Method 를 사용할 수 있다.

-  React.Component를 상속받기 때문에 리액트에서 제공하는 기능들을 모두 내것처럼 사용할 수 있다.

-  함수가 아닌 클래스이기 때문에 return문을 사용하지 않는다.

 -  render() 함수가 필수적으로 있어야 한다.( render() 함수를 사용해서 JSX를 반환)

 -  임의의 메서드를 정의할 수 있다.

 -  함수형 컴포넌트가 먼저 나왔기 때문에, 유지보수를 위해 클래스형 컴포넌트를 알아두어야 함

 

 

 함수형 컴포넌트 

 

 -  함수형은 상태를 저장할 수 없다. 기본적으로 함수는 한번 실행되고 나면 메모리 상에서 사라진다. (가비지 컬렉팅)

 -  함수형 컴포넌트는 클래스형 컴포넌트보다 선언하기가 좀 더 편하고, 메모리 자원을 덜 사용한다는 장점

 -  함수형 컴포넌트에서만 사용할 수 있는 hooks는 로직을 state와 분리할 수 있게 해주기 때문에 로직을 재사용할 수 있게 해준다.

 -  hooks 는 클로저 원리를 이용해서 state 를 저장한다.

 -  빌드 후 배포시에 결과물의 크기가 작다.

 - return문을 사용해서 JSX를 반환

 

 

 

728x90