Basic Svelte
Introduction
Bindings
Classes and styles
Advanced Svelte
Advanced reactivity
Motion
Advanced bindings
Advanced transitions
Context API
Special elements
<script module>
Next steps
Basic SvelteKit
Introduction
Routing
Loading data
Headers and cookies
Shared modules
API routes
$app/state
Errors and redirects
Advanced SvelteKit
Page options
Link options
Advanced routing
Advanced loading
Environment variables
Conclusion
Anything exported from a module script block becomes an export from the module itself. Let’s export a pauseAll function:
AudioPlayer
<script module>
	let current;
	export function pauseAll() {
		current?.pause();
	}
</script>We can now import pauseAll in App.svelte...
App
<script>
	import AudioPlayer, { pauseAll } from './AudioPlayer.svelte';
	import { tracks } from './tracks.js';
</script><script lang="ts">
	import AudioPlayer, { pauseAll } from './AudioPlayer.svelte';
	import { tracks } from './tracks.js';
</script>...and use it in an event handler:
App
<div class="centered">
	{#each tracks as track}
		<AudioPlayer {...track} />
	{/each}
	<button onclick={pauseAll}>
		pause all
	</button>
</div>You can’t have a default export, because the component is the default export.
previous next
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script>
import AudioPlayer from './AudioPlayer.svelte';
	import { tracks } from './tracks.js';</script>
<div class="centered">
	{#each tracks as track}		<AudioPlayer {...track} />	{/each}</div>
<style>
	.centered {display: flex;
flex-direction: column;
height: 100%;
justify-content: center;
gap: 0.5em;
max-width: 40em;
margin: 0 auto;
}
</style>