개발자

React에서 함수형 컴포넌트를 사용할 때 <Component/> vs Component() 어떤 차이가 있나요?

2023년 01월 26일조회 325

안녕하세요! React에서 컴포넌트를 사용할 때 <Component />와 같이 사용할 수 있고 호출 하는 방식으로 사용할 수 있는 것 같은데 어떤 차이가 있는지 궁금합니다! 최근에 합류한 사이드 프로젝트에서 두 방식이 혼용되어 사용하고 있는데 문득 궁금해져서 질문 드렸습니다. 감사합니다

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

장성호님의 프로필 사진

HTML 코드 내에 script를 삽입하는 형태로 코드를 작성하는지( Component() ), JSX element를 직접적으로 사용하는지(<Component/>) 정도의 차이겠네요. 그 외에는 동일하다고 생각됩니다. 실제 코드로 표현하면 다음과 같겠네요. 1. <Component/> return ( … <Component {…props} /> … ) 2. Component() return ( … { Component(props) } … ) 이렇게 코드를 작성하는 방법 외에는 큰 차이가 없다고 생각합니다. 1번이든, 2번이든 JSX를 사용해야하는데, 개인적으로는 React의 JSX 이해하기 공식 문서에서 지향하는 1번 방식을 사용하는 것이 좋지 않을까 생각합니다.

profile picture

익명

작성자

2023년 02월 03일

답변 감사합니다!

성원님의 프로필 사진

안녕하세요 저도 궁금해서 찾아봤는데 컴포넌트를 호출하는 방식 (Component())을 지양해야 한다는 글이 있어서 공유합니다:) https://dev.to/igor_bykov/react-calling-functional-components-as-functions-1d3l 1. Component()와 같이 함수를 직접 호출하는 방식은 리엑트의 라이프 사이클을 따르지 않고, 훅을 동작하지 않게 하는 등 리액트스러운 동작(React magic)을 막을 수 있음. 2. 함수 호출 방식은 미래에 안티 패턴으로 간주될 수 있음 (https://github.com/jsx-eslint/eslint-plugin-react/issues/578) 3. 컴포넌트가 아닌 곳에서 state를 사용하는 것은 위험함. (https://kentcdodds.com/blog/dont-call-a-react-function-component)

profile picture

익명

작성자

2023년 02월 03일

지양해야 한다는 사실은 몰랐네요. 감사합니다!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!