Svelte基础
Svelte高阶
上下文API
特殊元素
接下来
SvelteKit基础
Shared modules
API routes
$app/state
Errors and redirects
Advanced SvelteKit
Page options
Link options
Advanced routing
Advanced loading
Environment variables
Conclusion
<script module>还支持导出哦,比如我们可以在AudioPlayer.svelte里导出函数stopAll:
Anything exported from a
modulescript block becomes an export from the module itself. Let’s export astopAllfunction:
AudioPlayer
<script module>
let current;
export function stopAll() {
current?.pause();
}
</script>然后就可以在App.svelte里引入函数stopAll了:
We can now import
stopAllinApp.svelte...
App
<script>
import AudioPlayer, { stopAll } from './AudioPlayer.svelte';
import { tracks } from './tracks.js';
</script><script lang="ts">
import AudioPlayer, { stopAll } from './AudioPlayer.svelte';
import { tracks } from './tracks.js';
</script>在事件处理器里使用stopAll:
...and use it in an event handler:
App
<div class="centered">
{#each tracks as track}
<AudioPlayer {...track} />
{/each}
<button onclick={stopAll}>
stop all
</button>
</div>另外需要注意的是导出没有默认值,因为组件本身就是默认导出
You can’t have a default export, because the component is the default export.
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>