반응형
what is the component?
컴포넌트(Component)란 프로그래밍에 있어 재사용이 가능한 각각의 독립된 (단위)모듈을 뜻한다.
functional components
함수 컴퍼넌트의 정의
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
이 함수는 데이터를 가진 하나의 “props” (props는 속성을 나타내는 데이터입니다) 객체 인자를 받은 후
React 엘리먼트를 반환하므로 유효한 React 컴포넌트입니다. 이러한 컴포넌트는 JavaScript 함수이기 때문에 말 그대로 “함수 컴포넌트”라고 호칭합니다.
-react 공식 사이트-
특징
- UI에 집중되어있는 방식
- 함수형은 상태를 저장할 수 없다. 기본적으로 함수는 한번 실행되고 나면 메모리 상에서 사라진다. (가비지 컬렉팅)
- 함수형 컴포넌트는 클래스형 컴포넌트보다 선언하기가 좀 더 편하고, 메모리 자원을 덜 사용한다는 장점
- 함수형 컴포넌트에서만 사용할 수 있는 hooks는 로직을 state와 분리할 수 있게 해주기 때문에 로직을 재사용할 수 있게 해준다.
EX>
use basic function
import react from "react";
interface AppProps{
}
function App({}:AppProps){
return (
<div>
Hello React
</div>
)
}
export default App;
use arrow function by react.FC
import react from "react";
/*
function과의 차이
- props에 children이 기본적으로 내장이 되어있다.
- defaultProps가 적용이 안된다
사용을 권장하지 않음
화살표함수를 사용하고 싶으면 react.FC를 생략하고 사용하는 걸 추천합니다
*/
interface AppProps{
}
const App:react.FC<AppProps>=({})=>{
return (
<div>
Hello React
</div>
)
}
export default App;
arrow function by react.FC
- 기본적으로 children이 들어가있다.(컴포넌트 props의 타입이 명백하지 않습니다. ⇒ 결국 Props 타입 안에 children을 명시해야 합니다.)
- defaultProps, propTypes, contextTypes를 설정 할 때 자동완성이 될 수 있다.
class components
특징
- 상태를 저장할 수 있고, React Life Cycle Method 를 사용할 수 있다.
- render() 함수가 필수적으로 있어야 한다.
- 클래스가 인스턴스를 찍어내면 마치 그 인스턴스는 그 때부터 독자적인 생명체처럼 메모리에 상주하고 있기 때문이다. (생명체라고 생각하면 상태를 부여하고 라이프 사이클을 부여하는 것이 어색하지 않다.)
- State 와 Action을 분리하기 어렵다는 단점이 있다.
EX>
import React, { Component } from 'react'
export default class test extends Component {
render() {
return (
<div>Hello React</div>
)
}
}
반응형
'웹 > react' 카테고리의 다른 글
react typescript hooks mobx6 사용하기!(useContext없이) (0) | 2021.07.31 |
---|---|
CRA없이 react typescript환경 구성하기 (0) | 2021.07.25 |
hooks-2 (useCallback,useMemo,useRef) (0) | 2021.05.14 |
hooks-1 (useSate, useEffect) (0) | 2021.05.13 |
그그그 팝업 비슷한거 있는데 이름이 뭐지?(모달 페이지) (0) | 2021.02.22 |