모달 컴포넌트
//Modal 컴포넌트
import React, { ReactNode } from 'react';
type Props = {
children: ReactNode;
};
function ModalComponent(props: Props) {
const { children } = props;
return (
<article className="modal">
<div className="modal__mask">딤영역</div>
<main className="modal__inner">
<header className="modal__header">
<h2 className="modal__title">제목</h2>
</header>
<div className="modal__content">{children}</div>
</main>
</article>
);
}
export default ModalComponent;
vue에서는 v-slot을 사용하여 안에 내용을 커스텀 하게 해줄 수 있는데,
react에서는 태그안에 무언가를 넣어서 쓰면 그게 props.children으로 전달이 된다고 한다.
그래서 그 내용을 modal의 content 안에 넣어주었다. (+ 제목과 닫는이벤트는 props로 따로 받아 처리하였다)
모달 사용할 페이지
import ModalComponent from '../../components/Modal';
<ModalComponent>
<p className="Dialog-message">가계부 상세 내용</p>
</ModalComponent>
모달 사용하는 페이지에서 ModalComponent안에 p태그를 넣어 전달하였다.
실제 렌더링된 모습
<article className="modal">
<div className="modal__mask">딤영역</div>
<main className="modal__inner">
<header className="modal__header">
<h2 className="modal__title">제목</h2>
</header>
<div className="modal__content">
<p className="Dialog-message">가계부 상세 내용</p>
</div>
</main>
</article>
이렇게 { children }으로 선언했던 부분이 p태그로 바뀌어 렌더링 되는것을 확인할 수 있다.
반응형
'React' 카테고리의 다른 글
[React & 가계부프로젝트] v-model 처럼 input값 변경 감지하기 (0) | 2022.06.27 |
---|---|
[React & 가계부프로젝트] Object 내부 key 한개 값만 변경하기 (0) | 2022.06.27 |
[React & 가계부프로젝트] JSX if else 문 만들기 (리액트로 v-if / v-else 만들어보기) (0) | 2022.06.27 |
[React & 가계부프로젝트] onClick 함수에 파라미터 같이 넘기기 (e도 같이 넘기기) (0) | 2022.06.27 |
[React & 가계부프로젝트] router 설정하기 (0) | 2022.06.27 |