[javascript] Svelte에서 로딩 상태를 처리하는 방법은 어떻게 되나요?

Svelte는 사용자 인터페이스를 더욱 직관적이고 효율적으로 만들 수 있는 프론트엔드 프레임워크입니다. 로딩 상태를 처리하려면 Svelte에서 제공하는 상태 변수 및 조건부 렌더링을 사용할 수 있습니다.

먼저, 로딩 상태를 나타내기 위해 Svelte 컴포넌트 내에 isLoading과 같은 상태 변수를 설정합니다.

<script>
  let isLoading = false;
  
  function fetchData() {
    isLoading = true;
    
    // 비동기 작업을 수행하고 데이터를 가져옵니다.
    // 데이터 가져오기가 완료되면 isLoading을 false로 설정합니다.
    fetch('https://api.example.com/data')
      .then(response => response.json())
      .then(data => {
        // 데이터 가져오기 완료
        isLoading = false;
        // 가져온 데이터를 처리합니다.
      })
      .catch(error => {
        // 에러 처리
        isLoading = false;
      });
  }
</script>

위의 코드에서는 fetchData 함수를 정의하고 이 함수를 호출함으로써 데이터를 가져오는 작업을 수행합니다. isLoading을 true로 설정하여 로딩 중임을 표시하고, 데이터 가져오기 완료 시 false로 설정하여 로딩이 끝났음을 나타냅니다. 비동기 작업에서 발생하는 에러에 대한 예외 처리도 수행합니다.

그리고 Svelte 컴포넌트의 템플릿 부분에서 isLoading 상태 변수를 사용하여 로딩 상태를 화면에 표시할 수 있습니다.

{#if isLoading}
  <p>Loading...</p>
{:else}
  <p>Data loaded</p>
{/if}

위의 코드에서는 isLoading 상태 변수를 사용하여 if-else 블록을 생성합니다. isLoading이 true이면 “로딩 중…“이라는 문구를 표시하고, false이면 “데이터 로드됨”이라는 문구를 표시합니다.

이렇게하면 비동기 작업이 실행되는 동안 로딩 상태를 표시할 수 있고, 데이터가 로드된 후 상태를 변경하여 내용을 업데이트할 수 있습니다.

Svelte를 사용하여 로딩 상태를 처리하는 방법을 살펴보았습니다. 이는 Svelte 컴포넌트의 상태 변수와 조건부 렌더링을 활용하여 간단하게 구현할 수 있는 기능입니다.