これで Svelte のチュートリアルが完了し、開発を始める準備が整いました。
このチュートリアルの次の2つのパートでは、あらゆる形、あらゆるサイズのアプリを作るための本格的なフレームワークである SvelteKit にフォーカスをあてます。
情報が多すぎて、まだ SvelteKit チュートリアルで学ぶ気分になれない、という方、ご安心ください! SvelteKit の全てを学ばなくても、すでに学習した Svelte の知識を活用することができます。あなたのターミナルでこちらを実行し、プロンプトに従うだけです…
npm create svelte@latest
…そして src/routes/+page.svelte
を編集してみてください。SvelteKit チュートリアルで学ぶ場合は、以下のリンクをクリックし、旅を続けてください。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<script>
import { onMount } from 'svelte';
let characters = ['🥳', '🎉', '✨'];
let confetti = new Array(100)
.fill()
.map((_, i) => {
return {
character:
characters[i % characters.length],
x: Math.random() * 100,
y: -20 - Math.random() * 100,
r: 0.1 + Math.random() * 1
};
})
.sort((a, b) => a.r - b.r);
onMount(() => {
let frame;
function loop() {
frame = requestAnimationFrame(loop);
confetti = confetti.map((emoji) => {
emoji.y += 0.3 * emoji.r;
if (emoji.y > 120) emoji.y = -20;
return emoji;
});
}
loop();
return () => cancelAnimationFrame(frame);
});
</script>
{#each confetti as c}
<span
style="left: {c.x}%; top: {c.y}%; transform: scale({c.r})"
>{c.character}</span
>
{/each}
<style>
:global(body) {
overflow: hidden;
}
span {
position: absolute;
font-size: 5vw;
user-select: none;
}
</style>