
긴 HTML을 한 단어로 깔끔하게 치환해서 넣을 수 있는 문법을 제공한다.
이걸 이용해, 변수 만들듯 HTML을 깔끔하게 한 단어로 치환해서 원하는 곳에 꽂아넣을 수 있다.
function Modal(){
return (
<div className="modal">
<h4>제목</h4>
<p>날짜</p>
<p>상세내용</p>
</div>
)
}
이렇게 Modal()이란 함수에 축약할 HTML을 return한다.
그리고
function App (){
return (
<div>
<Modal />
</div>
)
이렇게 return된 HTML을 한줄로 간단히 표기 가능하다.
이러면 남이볼때도, 내가 다시 볼때도 깔끔하고 직관적으로 체크 가능하다.
props를 통해 받아야 사용 가능하다.
당연히 App의 state는 App 내부에서 선언되었기 때문에 외부의 컴포넌트에선 사용 불가능하다.
그래서 props를 통해 부모가 자식에게 state를 같이 사용가능하도록 준다.
사용법은
1. 자식 컴포넌트 사용하는 곳에 가서 <jasikComponent={stateName} />
2. 자식컴포넌트 만드는 function으로 가서 props라는 파라미터 등록 후 props.stateName 사용
function App (){
let [title, setTitle] = useState(['남자코트 추천', '강남 우동맛집', '파이썬독학']);
return (
<div>
<Modal title={title}></Modal>
</div>
)
}
function Modal(props){
return (
<div className="modal">
<h4>{ props.title[0] }</h4>
</div>
)
}
이런식으로 사용하면 된다.
사실 아직 매우 기초적인 부분만 구현해봐서 컴포넌트의 사용성이나 효과, 사용 시기를 잘 모르겠다. 일단 계속 만들어보며 감을 잡자!!