14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Svelte4がリリースされました。Svelteを始めるなら今が良いかも!

Last updated at Posted at 2023-06-29

はじめに

2023年6月22日に Svelte 4 がリリースされました!

それを踏まえて Svelte 界隈の現状を鑑みると、今が Svelte のはじめ時として最適ではないかなと感じたので、その理由を記載します。

なぜ今始めるのが良いのか?

理由は以下の3点です。

理由1:Svelte 3 の改善という位置づけのため、より使いやすくなっている

Svelte 4 では、以下が主な変更点です。

  • パフォーマンスの改善
  • 開発者開発者エクスペリエンスの改善

つまりより使いやすくなっている、という扱いです。
このタイミングで Svelte を始めたほうが、より Svelte の良さを体験できるはずです。

例えば、transition のデフォルトの挙動の変更があります。
SvelteKit で以下の様にファイルを作成したとします。

src/routes/+layout.svelte
<nav>
	<ul class="nav">
		<li>
			<a href="/">Home</a>
		</li>
		<li>
			<a href="/list">List</a>
		</li>
	</ul>
</nav>

<slot />
src/routes/+page.svelte
Home
src/routes/list/+page.svelte
<script>
	import { fly } from 'svelte/transition';

	let list = [];
</script>

<button on:click={() => {list = [list.length, ...list]}}>add</button>
<ul>
	{#each list as item (item)}
		<li transition:fly={{y:20}}>{item}</li>
	{/each}
</ul>

Svelte 3 の場合、List画面で 「add」した後に Home 画面に移動すると、一時的に両方の画面が混在して表示されちゃいます。
image.png

これに対処するためには、以下の様に |local を付与する必要がありました。

-		<li transition:fly={{y:20}}>{item}</li>
+		<li transition:fly|local={{y:20}}>{item}</li>

Svelte 4 ではこの local がデフォルトの挙動になったので、こういった手間が不要になりました。

理由2:インタラクティブチュートリアル が完全リニューアルされた

以前はこんな画面でした。
image.png

最新の インタラクティブチュートリアル はこうなります。

image.png
左上のハンバーガーメニューをクリックすると、章を選択できるメニューが表示されます。
image.png

主な違いは以下になります。

  • 章を検索できるようになった。
    • 以前はセレクトボックス形式なので、スクロールが手間でした。
  • エクスプローラー風な見た目でファイルを作成できるようになった。
    • これによって、実開発時のファイル構成をイメージしやすくなりました。
  • SvelteKit のチュートリアルも統合されている。
    • なのでスムーズに SvelteKit へステップアップできます。

ただし、残念な点もあります。スマホ(iPhoneで確認) では利用できなかったです。見た目上はスマホでも利用できるようにデザインされているように見えるのですが、仮想環境がうまく起動してくれなかったです。ここが改善されると、どこにいても Svelte の学習ができて便利なんですよね...:joy:
2023/8/24 追記:この事象について issue に上がってるのを見つけましたー:smile:

理由3:SvelteLab のおかげでゼロセットアップで SvelteKit を開始できる

2023年5月だったと思いますが、Twitter で SvelteLab の存在を知りました。アクセスしてみて驚いたのは、ログインすることなく仮想環境が起動されて SvelteKit アプリを作成できるようになっていることです。仮想環境の構築には Stackblitz が使われているとのことです。

アクセスした直後にIDEの様な画面が表示されます。
image.png
右の領域で動作確認できるようになっていますし、別タブで開いて動作確認することもできます。

また、SvelteKit の仕様に則ったファイル作成をサポートしてくれます。
image.png

他にも便利な機能がたくさんあるみたいです!

なぜこのようなサービスを開発したのか、その理由が ドキュメントサイト に記載されていたので紹介します。

SvelteLab is a supercharged REPL for SvelteKit, or in other words a development environment for quickly crafting and sharing Svelte code. Instantly try out an idea, reproduce that bug or share a cool pattern or problem and share it with the world!

【訳 by DeepL
SvelteLabはSvelteKitのREPL、つまりSvelteコードを素早く作成し共有するための開発環境です。アイデアを即座に試したり、バグを再現したり、クールなパターンや問題を共有したり、そしてそれを世界と共有することができます!

素晴らしいですね!開発者のユーザーストリーを良くわかってらっしゃる!

おすすめの入門方法

以上の様に、ゼロセットアップで Svelte を学習できる環境が揃っています。それを踏まえて、私なりのおすすめ Svelte 入門方法を考えてみました。カッコ内は目安の時間です。

まとめ

Svelte 4 は Svelte 5 への布石という位置づけでもあるそうです。Svelte 5 ではどんなことになるのか、今から楽しみです!:smiley:

14
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?