[javascript] Svelte에서 탭(tab) 기능을 구현하는 방법은 어떻게 되나요?
먼저, Svelte 컴포넌트의 상태를 사용하여 현재 선택된 탭을 추적합니다. 이를 위해 Svelte의 let
키워드를 사용할 수 있습니다.
<script>
let selectedTab = 0; // 초기 선택된 탭 (0부터 시작)
function selectTab(tabIndex) {
selectedTab = tabIndex;
}
</script>
그리고 해당 탭을 표시하기 위한 HTML 코드를 작성합니다. selectedTab
변수를 사용하여 현재 선택된 탭을 표시할 수 있습니다. 또한 on:click
이벤트 핸들러를 사용하여 탭을 클릭했을 때 selectTab
함수를 호출합니다.
<div class="tabs">
<div class="tab" class:selected={selectedTab === 0} on:click={() => selectTab(0)}>Tab 1</div>
<div class="tab" class:selected={selectedTab === 1} on:click={() => selectTab(1)}>Tab 2</div>
<div class="tab" class:selected={selectedTab === 2} on:click={() => selectTab(2)}>Tab 3</div>
</div>
<div class="tab-content">
{#if selectedTab === 0}
<p>Tab 1 Content</p>
{:else if selectedTab === 1}
<p>Tab 2 Content</p>
{:else if selectedTab === 2}
<p>Tab 3 Content</p>
{/if}
</div>
위의 코드에서는 class:selected
를 사용하여 선택된 탭에 스타일을 적용할 수 있습니다. 또한 selectedTab
변수에 따라 해당 탭의 컨텐츠를 표시하기 위해 {#if} {:else if} {/if}
구문을 사용하였습니다. 이를 통해 선택된 탭의 컨텐츠를 동적으로 변경할 수 있습니다.
이제 위의 코드를 사용하여 탭 기능을 구현할 수 있습니다. 코드를 실행하면 각 탭을 클릭할 때마다 해당하는 컨텐츠가 표시됩니다.
더 자세한 내용은 Svelte 공식 문서(https://svelte.dev/)를 참조하시기 바랍니다.