[javascript] Svelte에서 모달 및 팝업 창을 구현하는 방법은 어떻게 되나요?
먼저, Svelte 프로젝트에 <svelte:modal>
을 설치해야 합니다. 다음 명령어를 사용하여 설치하세요:
npm install --save-dev svelte-modal
그런 다음, 모달 컴포넌트를 생성합니다. 아래 예제는 “Modal.svelte”라는 파일로 저장됩니다:
<script>
import { Modal } from "svelte-modal";
export let isOpen = false;
export let message = "";
function closeModal() {
isOpen = false;
}
</script>
<svelte:modal
title="Modal Title"
bind:isOpen={isOpen}
on:close={closeModal}
>
<h3 slot="header">Modal Header</h3>
<div slot="content">
<p>{message}</p>
</div>
<div slot="footer">
<button on:click={closeModal}>Close</button>
</div>
</svelte:modal>
위 코드에서는 isOpen
프로퍼티와 message
프로퍼티를 가진 모달 컴포넌트를 정의합니다. isOpen
은 모달이 열려있는지를 나타내는 플래그이고, message
는 모달 내용을 나타냅니다.
이제, 모달을 사용하는 부모 컴포넌트에서 <Modal>
컴포넌트를 렌더링할 수 있습니다. 아래 예제는 “App.svelte”라는 파일로 저장됩니다:
<script>
import Modal from "./Modal.svelte";
let showModal = false;
let modalMessage = "Hello, World!";
</script>
<main>
<button on:click={() => showModal = true}>Open Modal</button>
{#if showModal}
<Modal {isOpen} {message} on:close={() => showModal = false}/>
{/if}
</main>
위 코드에서는 <Modal>
컴포넌트를 사용하여 모달을 렌더링합니다. showModal
상태가 true
로 변경되면 모달이 열리고, false
로 변경되면 모달이 닫힙니다. modalMessage
는 모달 내용을 설정하기 위해 사용됩니다.
이제 Svelte 프로젝트를 실행하면 “Open Modal” 버튼이 있고, 버튼을 클릭하면 “Modal Title”과 “Hello, World!” 메시지가 표시되는 모달 창이 열립니다.
이와 같은 방법으로 Svelte에서 모달 및 팝업 창을 구현할 수 있습니다. Svelte의 <svelte:modal>
컴포넌트와 조건부 렌더링을 활용하여 원하는 스타일 및 동작을 가진 모달 창을 구현할 수 있습니다.
더 많은 정보를 원하시면, Svelte 공식 문서를 참조하시기 바랍니다.