[javascript] Svelte에서 로딩 스피너(loading spinner)를 구현하는 방법은 어떻게 되나요?
먼저, Svelte 컴포넌트에서 로딩 스피너를 나타낼 상태 변수를 만듭니다. 다음 예시에서는 isLoading
변수를 사용합니다.
<script>
let isLoading = false;
function startLoading() {
isLoading = true;
// 로딩 시작하는 로직을 추가하세요
}
function stopLoading() {
isLoading = false;
// 로딩 종료하는 로직을 추가하세요
}
</script>
다음으로, 상태 변수를 템플릿에서 사용하여 로딩 스피너를 표시하거나 숨깁니다. 예시 코드에서는 isLoading
값에 따라 로딩 스피너가 표시되도록 조건부 렌더링을 사용합니다.
{#if isLoading}
<div class="loader">
<!-- 로딩 스피너의 디자인 및 스타일링을 추가하세요 -->
Loading...
</div>
{/if}
위의 코드에서 .loader
클래스는 로딩 스피너의 디자인 및 스타일링을 위해 CSS를 추가해야 합니다.
마지막으로, 로딩 작업을 시작하고 종료하는 로직을 호출하는 이벤트나 함수를 정의합니다. 이 예시에서는 startLoading()
과 stopLoading()
함수를 사용합니다.
<button on:click={startLoading}>로딩 시작</button>
<button on:click={stopLoading}>로딩 종료</button>
이제 Svelte 애플리케이션에서 로딩 스피너를 구현할 수 있습니다. 로딩 작업을 시작할 때 startLoading()
함수를 호출하여 로딩 스피너를 표시하고, 작업이 완료되었을 때 stopLoading()
함수를 호출하여 로딩 스피너를 숨깁니다.
추가로, 실제 로딩 작업은 필요에 따라 비동기 함수나 서버 요청을 처리하는 과정에서 실행될 수 있습니다. 예시 코드에서는 이 부분을 간략화하기 위해 로딩 스피너의 표시/숨김과는 별개로 로딩 작업을 처리해야 한다고 가정합니다.
참고: Svelte에서 로딩 스피너를 구현하는 방법은 디자인 및 스타일링에 따라 다를 수 있습니다. 이 예시는 기본 구현 방법을 보여주기 위한 것이며, 실제 애플리케이션에서는 디자인 요구사항에 맞게 커스터마이즈할 수 있습니다.