728x90
728x90
const Component vs. function Component
들어가며
- 리액트(React.js)에서
const Component
형태의 화살표 함수 방식과function Component
형태의 함수 선언 방식으로 컴포넌트를 선언할 수 있다. - 위의 두 가지 방법에 대한 차이점을 정리해본다.

① 화살표 함수 방식
const MyComponent = () => { return( .. ) }
- 화살표 함수(Arrow Function)로 작성할 수 있으며, 짧은 코드로 작성할 수 있다는 장점이 있다.
- 예를 들어, 한 줄로 반환하는 경우,
return
키워드를 생략할 수 있다.
const MyComponent = () => ( ... )
- 컴포넌트 선언과 동시에
export default
할 수 없다.- 컴포넌트 선언 후,
export default
를 따로 지정해야 한다.
- 컴포넌트 선언 후,
const MyComponent = () => {} export default MyComponent
![]() |
![]() |
const
로 선언된 화살표 함수는 호이스팅(Hoisting)되지 않으므로, 사용 전에 반드시 선언해야 한다.
const App = () => ( <> <MyComponent /> // 에러 발생 <AlsoMyComponent /> // 에러 발생 </> ) const MyComponent = () => {} const AlsoMyComponent = () => {}
② 함수 선언 방식
function MyComponent() { return( .. ) }
- 컴포넌트를 선언하면서 바로
export default
할 수 있다.
export default function MyComponent() {}
function
문법으로 작성된 함수는 호이스팅(Hoisting)이 가능하여, 선언된 위치에 관계없이 파일 상단으로 끌어올려져 사용될 수 있다.
const App = () => ( <> <MyComponent /> <AlsoMyComponent /> </> ) function MyComponent() {} function AlsoMyComponent() {}
컴포넌트가 호이스팅이 필요할 경우, 주로 함수 선언 방식을 사용한다.
참고 사이트
React functional components: const vs. function
Today I was wondering if there is any real difference in declaring a new component with the const arrow function syntax and function syntax. Tldr: Hoisting, I guess?
dev.to
728x90
728x90
'Programming > React' 카테고리의 다른 글
[React.js] 리덕스(Redux), 리덕스 툴킷(Redux Toolkit) (0) | 2024.11.11 |
---|---|
[React.js] 모든 웹 브라우저에서 공통된 HTML 요소 스타일이 보여지도록 설정하는 방법 (normalize.css) (0) | 2024.11.07 |
[React.js] Recharts 라이브러리 (1) | 2024.11.06 |
[React.ts] PropsWithChildren (0) | 2024.11.05 |
[React.js] React Share 라이브러리 (0) | 2024.11.01 |
[React.js] Clerk (0) | 2024.10.28 |
[React.js] use-debounce 패키지 (1) | 2024.10.27 |
[React.js] antd 컴포넌트 라이브러리 (1) | 2024.10.23 |