[javascript] 리액트에서 모달(Modal) 창 구현 방법

리액트 애플리케이션에서 모달 창을 구현하는 것은 매우 일반적입니다. 모달 창은 사용자에게 추가 정보를 제공하거나 추가 작업을 수행할 수 있는 편리한 방법입니다. 다음은 모달 창을 리액트로 구현하는 간단한 방법을 안내합니다.

컴포넌트 상태 활용

먼저, 모달이 열리거나 닫히는 상태를 다루기 위해 리액트의 컴포넌트 상태(State)를 활용합니다. 다음은 모달이 열려있는지 나타내는 상태값을 관리하는 예시입니다.

import React, { useState } from 'react';

function App() {
  const [isModalOpen, setIsModalOpen] = useState(false);

  const openModal = () => {
    setIsModalOpen(true);
  };

  const closeModal = () => {
    setIsModalOpen(false);
  };

  return (
    <div>
      <button onClick={openModal}>모달 열기</button>
      {isModalOpen && <Modal onClose={closeModal} />}
    </div>
  );
}

function Modal({ onClose }) {
  return (
    <div className="modal">
      <h2>모달 내용</h2>
      <button onClick={onClose}>닫기</button>
    </div>
  );
}

export default App;

위 예시에서 isModalOpen 상태값은 모달이 열려있는지 여부를 나타냅니다. openModal 함수는 모달을 열기 위해 호출되고, closeModal 함수는 모달을 닫기 위해 호출됩니다.

외부 라이브러리 활용

또한, 모달을 더 다양하게 스타일링하거나 복잡한 기능을 추가하기 위해 외부 라이브러리를 활용할 수 있습니다. 대표적인 라이브러리로는 react-modal, reactstrap, 혹은 material-ui 등이 있습니다.

간단한 모달창을 구현할 때는 위의 예시처럼 직접 상태를 다루고 컴포넌트를 만드는 방법이 유용하지만, 더 복잡한 기능이 필요할 때는 외부 라이브러리를 활용하여 효율적으로 모달을 구현할 수 있습니다.

따라서, 필요에 따라 적절한 방법을 선택하여 모달을 구현할 수 있습니다.

이상으로, 리액트에서 모달(Modal) 창을 구현하는 방법을 안내했습니다. 원하는 방식을 선택하여 모달을 구현해보시기 바랍니다.

좀 더 자세한 내용이나 추가 기능은 해당 라이브러리의 공식 문서를 참고하는 것이 좋습니다.

참고 자료: