react
[react] Component : 많은 div 들을 한 단어로 줄이고 싶을 때
전감자(◔◡◔)
2024. 12. 10. 16:26
<div className = "modal">
<h4>제목</h4>
<p>날짜</p>
<p>상세 내용</p>
</div>
.modal{
margin-top: 20px;
padding: 20px;
background-color: #eee;
text-align: left;
}
이런 모달창 하나를 디자인 해준다.
복잡한 html 을 한 단어로 치환할 수 있는 컴포넌트 문법
리액트는 html 을 한 단어로 깔끔하게 치환해서 넣을 수 있는 문법을 제공한다.
함수 문법을 이용해서 html 을 하나의 태그로 만들어 가독성을 높일 수 있음
const Modal = () => {
return (
<div className = "modal">
<h4>제목</h4>
<p>날짜</p>
<p>상세 내용</p>
</div>
)
}
function Modal(){
return (
<div className = "modal">
<h4>제목</h4>
<p>날짜</p>
<p>상세 내용</p>
</div>
)
두 방식 모두 가능함
단 return 안에 두 개의 <div> 를 나란하게 <div></div><div></div> 이렇게 적는 것은 불가능함
의미없는 div를 쓰기 싫다면 <></> 이걸로 감싸도 된다. << fragment 문법
컴포넌트 만드는 법 정리
1. function을 이용해서 함수를 하나 만들어 줌
2. 그 함수 안에 return () 내에 축약을 원하는 html 을 담으면 됨
3. 원하는 곳에 <함수명></함수명> 또는 <함수명/>
컴포넌트 만들 때 주의 점
1. 컴포넌트 작명할 땐 영어 대문자로 작명
2. return () 안엔 html 태그 들이 평행하게 여러 개 들어갈 수 없다.
3. function App(){} 내부에서 만들면 안됨 App 자체가 하나의 컴포넌트임
4. <컴포넌트></컴포넌트> 이렇게 써도되고 <컴포넌트/> 이렇게 써도됨
5. arrow function 써도 됨 (받는 변수는 주로 const)
어떤 html 들을 컴포넌트로 만드는게 좋을까?
- 사이트에 반복해서 출현하는 html 덩어리들
- 내용이 매우 자주 변경될 것 같은 html 부분
- 다른 페이지를 만들고 싶을 때 그 페이지의 html 내용을 하나의 컴포넌트로 만드는게 좋다
- 또는 다른 팀원과 협업할 때 웹 페이지를 컴포넌트 단위로 나눠서 작업을 분배