學習如何從 Svelte 組件導出函數和變數

你知道可以使用以下語法將一個 Svelte 組件導入另一個組件中:

<script>
import Button from './Button.svelte';
</script>

如果你想要導出更多東西呢?

那麼你必須在組件中使用特殊的 script 標籤,並添加 context="module" 屬性進行導出。

以下是一個示例。假設你有一個名為 Button.svelte 的 Button 組件:

<button>A button</button>

而且你希望其他組件能夠修改該按鈕的顏色。你可以使用 props,這只是一個示例。或者你可以提供一個名為 changeColor 的函數。

你可以在這個特殊的 script 標籤中編寫並導出它:

<script context="module">
export function changeColor() {
 //...添加邏輯...
}
</script>

<button>A button</button>

警告:我沒有實現實際的功能,但你可以理解這個示例。

需要注意的是,你可以在組件中添加另一個“普通”的 script 標籤。

現在其他組件可以導入 Button(默認導出)和 changeColor 函數:

<script>
import Button, { changeColor } from './Button.svelte'
</script>