카테고리 없음

[REACT] 컴포넌트 Component 란?

dmscks3126 2025. 2. 17. 23:57

fragment 문법

- html 코드를 짤 때, return () 내부에는 하나의 태그로 시작해서 하나의 태그로 끝나야 한다. 

return(
  <div>
    <div></div>
    <div></div>
  </div>
)

 

>> 의미없는 div를 쓰기 싫으면  <></> 로 감싸면 된다

return(
  <>
    <div></div>
    <div></div>
  </>
)

 

 

 


 

Component 문법?

: 긴 HTML을 한 단어로 치환해서 넣을 수 있는 문법

- 함수나 변수를 만들듯 HTML을 깔끔하게 한 단어로 치환해서 원하는 곳에 작성할 수 있다. 

 

EX) Modal을 Component화 시켜서  App 안에 넣기

function App (){
  return (
    <div>
      (생략)
      <Modal></Modal>
    </div>
  )
}

function Modal(){
  return (
    <div className="modal">
      <h4>제목</h4>
      <p>날짜</p>
      <p>상세내용</p>
    </div>
  )
}

 

 

 

줄이는 방법

1. function을 이용해서 함수를 하나 만들고 작명한다.

2. 그 함수 안에 return() 안에 축약을 원하는 HTML을 담는다.

3. 원하는 곳에서 <함수명></함수명> 을 사용하면 아까 축약한 HTML이 등장한다.

 

 

>> 이렇게 축약한 HTML  덩어리가 Component 

 

 

Component 만들 때 주의점

1. 작명시 영어 대문자로 작명한다. (보통)

2. return() 안에는 html 태그가 여러가지 들어갈 수 없다.

3. funcion App(){} 내부에서 만들면 안된다.

- why? -> funcion App(){} 이것도 컴포넌트이기 때문

4. <컴포넌트></컴포넌트> 이렇게 써도 되고, <컴포넌트/> 이렇게 써도 된다. 

 

 

* arrow funcion 도 가능하다.

function Modal(){
  return ( <div></div> )
}

let Modal = () => {
  return ( <div></div>) 
}

 

 

어떤 HTML 들을 Component 로 만드는게 좋을까?

* 기준은 없지만 관습적으로는,

 

- 반복해서 출현하는 HTML 덩어리

-  내용이 자주 변경될 것 같은 HTML 부분을 잘라서 만들기

-  다른 페이지를 만들고싶다면, 그 페이지의 HTML 내용을 하나의 컴포넌트로 만드는게 좋다

-  다른 팀원과 협업할 때 웹페이지를 컴포넌트 단위로 나눠서 작업을 분배하기도 한다.

 

1. 긴 코드 축약할 때

2. 다른 곳에서 코드 재사용할 때

3. 복잡한 코드를 작은 기능으로 나눌 때

 

 

Component의 단점

너무 많이 만들면 관리가 힘들다. 

 

 

 

*출처 : 코딩애플 react 강의