[javascript] Svelte에서 슬라이더(slider)를 구현하는 방법은 어떻게 되나요?
먼저, Svelte 컴포넌트에서 상태 값을 만들어주어야 합니다. 상태 값은 사용자의 입력 또는 기타 작업에 따라 변경됩니다. 이 예제에서는 value
라는 상태 값을 사용해보도록 하겠습니다.
<script>
import { onMount, onDestroy } from 'svelte';
let value = 0;
let min = 0;
let max = 100;
function handleChange(event) {
value = event.target.value;
}
let slider;
onMount(() => {
slider = document.getElementById('slider');
slider.addEventListener('input', handleChange);
});
onDestroy(() => {
slider.removeEventListener('input', handleChange);
});
</script>
<style>
.slider {
width: 100%;
}
</style>
<input
type="range"
id="slider"
class="slider"
min={min}
max={max}
bind:value
/>
<p>Value: {value}</p>
위의 코드를 보면, value
변수가 슬라이더의 현재 값과 양방향으로 바인딩되어 있음을 확인할 수 있습니다. 따라서 슬라이더를 움직일 때마다 handleChange
함수가 호출되어 value
변수가 업데이트되고, 이를 통해 화면이 갱신됩니다.
위의 코드에서는 onMount
함수와 onDestroy
함수를 사용하여 컴포넌트의 마운트 및 언마운트 시점에 이벤트 리스너를 추가하고 제거하는 작업도 수행하고 있습니다. 이는 메모리 누수를 방지하기 위해 권장되는 방법입니다.
추가로 슬라이더의 스타일링을 위해 style
태그 내에 .slider
클래스를 정의하였습니다. 이 예제에서는 전체 너비를 차지하기 위해 width: 100%
를 적용하였습니다.
코드의 마지막 부분에서는 현재 value
값을 간단히 출력하기 위해 <p>
요소를 사용하였습니다.
이제 위의 코드를 Svelte 애플리케이션에 포함시키면 브라우저에 슬라이더 컴포넌트가 나타날 것입니다. 슬라이더를 움직이면 값이 변경되고, 화면에 표시된 Value: {value}
부분도 함께 변경됩니다.
Svelte에서 슬라이더를 구현하는 방법을 간단하게 소개해드렸습니다. 이를 바탕으로 필요한 추가 기능을 구현할 수 있을 것입니다. 상태 값의 변경 및 이벤트 처리를 활용하여 원하는 동작을 구현해보세요.