React에서 사용자 정의 팝업 구성 요소 만들기
때때로 우리는 Bootstrap이나 자료에서 제공하는 다양한 모달 상자를 사용하다가 사라지거나 이러한 프레임워크를 사용하지 않는다고 가정합니다. 그런 다음 팝업 및 모달 상자에 대한 자체 구성 요소를 만들어야 하는 경우 이러한 요구 사항 중 하나를 위해 이것을 만들었습니다.
읽기 전에 살펴보고 싶다면 이 데모를 시도해 보세요.
이것은 프로젝트 전체의 모든 구성 요소에서 호출할 수 있는 완전히 재사용 가능한 구성 요소입니다.
1단계: 다음 코드를 사용하여 custom-popup.module.css라는 파일을 만듭니다.
.overlay {
visibility: hidden;
opacity: 0;
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, 0.7);
transition: opacity 500ms;
}
.popup {
margin: 70px auto;
padding: 20px;
background: #fff;
border-radius: 5px;
width: 30%;
position: relative;
transition: all 5s ease-in-out;
}
.popup h2 {
margin-top: 0;
color: #333;
font-family: Tahoma, Arial, sans-serif;
}
.popup .close {
position: absolute;
top: 20px;
right: 30px;
transition: all 200ms;
font-size: 30px;
font-weight: bold;
text-decoration: none;
color: #333;
}
.popup .close:hover {
cursor: pointer;
color: #000;
}
.popup .content {
max-height: 30%;
overflow: auto;
}
@media screen and (max-width: 700px) {
.popup {
width: 70%;
}
}
2단계: 이제 다음 코드를 사용하여 이름이 CustomPopup.jsx인 팝업 구성 요소를 만듭니다.
import { useEffect, useState } from "react";
import popupStyles from "./custom-popup.module.css";
import PropTypes from "prop-types";
const CustomPopup = (props) => {
const [show, setShow] = useState(false);
const closeHandler = (e) => {
setShow(false);
props.onClose(false);
};
useEffect(() => {
setShow(props.show);
}, [props.show]);
return (
<div
style={{
visibility: show ? "visible" : "hidden",
opacity: show ? "1" : "0"
}}
className={popupStyles.overlay}
>
<div className={popupStyles.popup}>
<h2>{props.title}</h2>
<span className={popupStyles.close} onClick={closeHandler}>
×
</span>
<div className={popupStyles.content}>{props.children}</div>
</div>
</div>
);
};
CustomPopup.propTypes = {
title: PropTypes.string.isRequired,
show: PropTypes.bool.isRequired,
onClose: PropTypes.func.isRequired
};
export default CustomPopup;
PropTypes를 사용하는 이 구성 요소, 프로젝트에 PropTypes를 설치하지 않은 경우 먼저 다음을 사용하여 설치하십시오.
npm install prop-types --save
3단계: 다른 구성 요소에서 호출
<CustomPopup
onClose={popupCloseHandler}
show={visibility}
title="Hello Jeetendra"
>
<h1>Hello This is Popup Content Area</h1>
<h2>This is my lorem ipsum text here!</h2>
</CustomPopup>
3가지 소품이 필요합니다.
1: onClose – 닫기 후 일부 활동을 수행하기 위해 핸들러가 필요합니다.
팝업 자체를 클릭
2: show – 부울을 사용하여 팝업의 가시성을 전달합니다.
3: 제목 – 팝업 제목 제공
팝업 콘텐츠로 렌더링하려는 유효한 JSX를 내부에서 전달할 수 있습니다.
이 PopUp 구성 요소를 어떻게 활용할 수 있는지 완전한 예제가 필요한 경우 다음 코드를 살펴볼 수 있습니다.
import { useState } from "react";
import CustomPopup from "./CustomPopup";
import "./styles.css";
export default function App() {
const [visibility, setVisibility] = useState(false);
const popupCloseHandler = (e) => {
setVisibility(e);
};
return (
<div className="App">
<button onClick={(e) => setVisibility(!visibility)}>Toggle Popup</button>
<CustomPopup
onClose={popupCloseHandler}
show={visibility}
title="Hello Jeetendra"
>
<h1>Hello This is Popup Content Area</h1>
<h2>This is my lorem ipsum text here!</h2>
</CustomPopup>
</div>
);
}
이 블로그를 위한 것입니다. 의심 사항이나 제안 사항이 있는 경우 저에게 연락할 수 있습니다. 댓글 섹션에 알려주세요.
Reference
이 문제에 관하여(React에서 사용자 정의 팝업 구성 요소 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/g10dra/create-custom-popup-component-in-react-1o18텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)