
컴포넌트는 복잡하고 긴 HTML을 한 단어로 치환할 수 있습니다!
컴포넌트를 사용하면 함수나 변수를 만들듯이 HTML을 깔끔하게 한 단어로 치환하여 원하는 곳으로 넣을 수 있습니다 :)
function App (){
return (
<div>
<Modal></Modal>
</div>
)
}
function Modal(){
return (
<div>
<h4>제목</h4>
<p>상세내용</p>
</div>
)
}
이렇게 축약한 HTML을 Component 라고 합니다!
component 는 보통 영어 대문자로 작명
return () 안엔 html 태그들이 평행하게 여러 개 들어갈 수 없음
return(
<div></div>
<div></div>
)
( X )
return(
<div>
<div></div>
<div></div>
</div>
)
( O )
관습적으로 Component화하는 HTML들은?
사이트에 반복 출현하는 HTML 덩어리들
내용이 자주 변경될 것 같은 HTML 부분
다른 페이지를 만들 때, 그 페이지의 HTML을 하나의 Component로!
HTML 깔끔하게 쓰려고 Component를 무수히 많이 만들면 그것만으로도 관리하기가 힘들어집니다 🥲
예를 들면..! function Modal 안에서 글제목 state를 쓰고 싶을 경우 {글제목} 이렇게 쓰면 안 됩니다
왜냐? 자바스크립트에선 한 function 안에 있는 변수를 다른 function에서 맘대로 쓸 수 없기 때문입니다
props 문법을 사용해서 state를 까지 전해줘야 비로소 사용 가능합니다