Frontend-Gang-Study / woowahan-typescript-with-react

[우아한 타입스크립트 with 리액트] 책 스터디 🚀
2 stars 0 forks source link

8.1.6_React.ReactNode와 React.ReactElement의 차이점을 설명해주세요. #21

Open jnkeniaem opened 1 day ago

jnkeniaem commented 1 day ago

📝 259,260p ❓ React.ReactNode와 React.ReactElement의 차이점을 설명해주시는데, 두 타입이 어떤 상황에서 적합한지 위주로 설명해주세요.

jnkeniaem commented 1 day ago

ReactNode는 ReactElement, boolean, number 등 다양한 타입을 포함합니다. 때문에 리액트 컴포넌트가 prop으로 다양한 형태를 가지게 할 때 유용하게 사용되고, ReactElement는 원하는 컴포넌트의 prop을 제네릭으로 지정할때 적합합니다.

42inshin commented 1 day ago

ReactElement 는 함수 컴포넌트 반환 타입입니다. createElement로 생성된 특정한 리액트 요소만을 허용하고자 할 때 사용합니다.

ReactNode는 ReactElement가 포함된 ReactChild 뿐만 아니라 반환 값으로 사용할 수 있는 string, boolean, null 등의 여러 타입을 가진 넓은 범주의 타입입니다. render 함수가 반환할 수 있는 모든 타입을 담고 있습니다. children props 에 다양한 타입을 허용하고 싶을 때 주로 사용합니다.