mcpField
S
svelte5-best-practices

svelte5-best-practices

github.com/midudev開発7.0k68 回インストール1 週間前に更新
リポジトリ

svelte5-best-practices について

Svelte 5 開発者向けの実践ガイドです。リアクティブな状態、コンポーネントのプロパティ、スニペット、イベント処理に加え、SvelteKit、性能、移行の資料を案内します。

主な機能

  1. 01runes によるリアクティブ状態のパターン
  2. 02コンポーネントプロパティと双方向バインディング
  3. 03スニペットとレンダリングパターン
  4. 04イベント処理とコールバックプロパティ
  5. 05SvelteKit、性能、移行のリファレンス

活用シーン

  1. 01Svelte 5 のリアクティブ状態の実装
  2. 02コンポーネントプロパティとイベントコールバックの記述
  3. 03Svelte 4 コードの Svelte 5 への移行
  4. 04SvelteKit の読み込み処理や性能パターンの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/midudev/autoskills --skill svelte5-best-practices

インストール後、Claude Code で/svelte5-best-practicesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
events.md
migration.md
performance.md
runes.md
snippets.md
sveltekit.md
typescript.md

詳細

Svelte 5 のベストプラクティス

クイックリファレンス

トピック使用する場面リファレンス
ルーン$state、$derived、$effect、$props、$bindable、$inspectrunes.md
スニペットスロットの置き換え、{#snippet}、{@render}snippets.md
イベントonclick ハンドラー、コールバックプロパティ、コンテキスト APIevents.md
TypeScriptProps の型付け、ジェネリックコンポーネントtypescript.md
移行Svelte 4 から 5 への移行、ストアからルーンへの移行migration.md
SvelteKitLoad 関数、フォームアクション、SSR、ページの型付けsveltekit.md
パフォーマンスユニバーサルリアクティビティ、過剰なリアクティビティの回避、ストリーミングperformance.md

基本的なパターン

リアクティブな状態
<script>
  let count = $state(0);           // Reactive state
  let doubled = $derived(count * 2); // Computed value
</script>
コンポーネントの Props
<script>
  let { name, count = 0 } = $props();
  let { value = $bindable() } = $props(); // Two-way binding
</script>
スニペット(スロットの置き換え)
<script>
  let { children, header } = $props();
</script>

{@render header?.()}
{@render children()}
イベントハンドラー

<button onclick={() => count++}>Click</button>
コールバックプロパティ(createEventDispatcher の置き換え)
<script>
  let { onclick } = $props();
</script>

<button onclick={() => onclick?.({ data })}>Click</button>

よくある間違い

  1. $state を使わずに let を使う - $state() がない変数はリアクティブになりません
  2. 派生値に $effect を使う - 代わりに $derived を使います
  3. on:click 構文を使う - Svelte 5 では onclick を使います
  4. createEventDispatcher を使う - 代わりにコールバックプロパティを使います
  5. <slot> を使う - {@render} とスニペットを使います
  6. $bindable() を忘れる - bind: を動作させるには必須です
  7. SSR でモジュールレベルの状態を設定する - リクエスト間で状態が漏れる原因になります
  8. Load 関数で await を逐次実行する - リクエストを並列で処理するには Promise.all を使います

コメント