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.)