[javascript] Svelte에서 컴포넌트의 상태(State) 전달 방법은 어떻게 되나요?
Svelte에서는 export
키워드를 사용하여 컴포넌트의 상태를 다른 컴포넌트에 전달할 수 있습니다. 예를 들어, 다음과 같이 간단한 컴포넌트를 만들어 보겠습니다:
// Counter.svelte
<script>
export let count = 0;
function increment() {
count += 1;
}
</script>
<button on:click={increment}>
Click me ({count})
</button>
위 예제에서는 count
라는 상태를 컴포넌트 외부로 내보내고 있습니다. export
키워드를 사용하여 count
를 외부에 공개하고, 다른 컴포넌트에서 이 값을 사용할 수 있게 했습니다.
이제 다른 컴포넌트에서 Counter를 사용해보겠습니다:
// App.svelte
<script>
import Counter from './Counter.svelte';
</script>
<Counter count={5} />
위 예제에서는 Counter
컴포넌트에 count
prop을 전달하고 있습니다. 이렇게 전달된 count
prop은 Counter
컴포넌트의 count
상태와 연결됩니다. prop으로 값을 전달할 때는 중괄호 {}
를 사용하여 전달합니다.
이제 Counter
컴포넌트 안에서 받은 count
prop을 사용해보겠습니다:
// Counter.svelte
<script>
export let count = 0;
function increment() {
count += 1;
}
</script>
<button on:click={increment}>
Click me ({count})
</button>
<p>Received count prop: {count}</p>
위 예제에서는 count
prop을 p
요소 안에서 사용하고 있습니다. 이렇게 count
를 내보낸 컴포넌트와 받은 컴포넌트 간에 양방향 데이터 바인딩이 이루어집니다.
이렇게 Svelte에서는 export
키워드를 사용하여 컴포넌트의 상태를 외부로 전달할 수 있습니다. 이를 통해 컴포넌트 간에 데이터를 쉽게 공유할 수 있으며, 여러 컴포넌트들이 상호작용할 수 있는 동적인 UI를 만들 수 있습니다.
참고: Svelte docs