반응형
Notice
Recent Posts
Recent Comments
Link
안 쓰던 블로그
React-함수형 컴포넌트 본문
반응형
리액트에서 컴포넌트는 class 문법을 사용해서 아래처럼 정의한다
import React, {Component} from 'react';
class App extends Component {
render(){
return(
<div>
Hello{this.props.name}
</div>
);
}
}
export default App;
하지만 컴포넌트가 단지 props를 전달받아 뷰를 렌더링하는 간단한 역할만 한다면
이렇게 class 만들고 render 만들 필요 없이 더 간단하게 할 수 있다
import React, {Component} from 'react';
function funcName(props) {
return(
<div>
Hello{this.props.name}
</div>
);
}
export default funcName;
이렇게 함수 형태로 컴포넌트를 선언할 수도 있다
여기서 ES6의 화살표 함수와 비구조화 할당 문법까지 사용하면 아래처럼 된다
import React, {Component} from 'react';
const funcName=({name})=>{
return(
<div>Hello {name}</div>
)
}
export default funcName;
또는 {}까지 생략 가능하다
import React, {Component} from 'react';
const funcName=({name})=> (
<div>Hello {name}</div>
)
export default funcName;
함수형 컴포넌트를 언제 사용할까?
이렇게 컴포넌트를 선언하면 라이프사이클과 state등의 기능을 전부 없앴기 때문에, 메모리 소모량이 적고 약간 더 빨라진다
리액트 프로젝트가 커질 수록 state를 사용하는 컴포넌트 개수를 줄이는 게 속도나 메모리 면에서 이득이므로
state나 라이프사이클API를 꼭 써야할 때만 클래스 형태로 변환하면 좋다
참고한 책: 리액트를 다루는 기술-김민준 저
반응형
'Web > React' 카테고리의 다른 글
To Do List 웹 프로젝트_준비 및 시작 (0) | 2020.07.16 |
---|---|
React-컴포넌트 스타일링(CSS, Sass, styled-components) (0) | 2020.07.09 |
React-컴포넌트 라이프사이클 메서드 (0) | 2020.07.07 |
React-컴포넌트 반복(map()과 key) (0) | 2020.07.07 |
React-ref (DOM에 이름 달기) (0) | 2020.07.07 |
Comments