0Pricing
Sveltejs Academy · レッスン

StoreによるEvent Busパターン

writable storeを使ってグローバルなイベントバスを実装し、疎結合な通信を実現します。

「StoreによるEvent Busパターン」はCoddyKit上の無料Sveltejs Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSveltejs Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Sveltejs Academyコースには全4レッスンが含まれています。

イベントバス

イベントバスは、疎結合な通信のためのグローバルな発行・購読チャネルです。

writableで実装する

最新のイベントを保持するwritableストアは、シンプルなバスとして機能します。

const bus = writable(null);
export function emit(event) { bus.set(event); }
export function on(fn) { return bus.subscribe(e => { if (e) fn(e); }); }

ユースケース

あるコンポーネントがトーストイベントを発行し、別のコンポーネントが購読してアプリ全体にトーストを表示します。

疎結合化

送信側と受信側は互いをインポートせず、どちらもバスに依存します。

型安全性

安全に購読できるように、イベントを判別可能なユニオン型として型付けします。

type Event = { type: "toast"; text: string } | { type: "logout" };

一度だけ購読する

コンポーネント内で$構文を使い、自動購読解除できるようにラップします。

複数のバス

1つの巨大なチャネルになるのを避けるため、appBus、modalBus、audioBusのようにドメインごとに分割します。

アンチパターン

イベントバスを使いすぎると、データフローが暗黙的になります。所有者が明確な場合は、直接のpropsやストアを優先します。

リプレイのセマンティクス

writableストアは最新の値だけを保持します。イベント履歴全体が必要な場合は、配列ストアを使います。

外部イベント

イベントバスは、window resizeやキーボードショートカットなどのブラウザーイベントをラップすることもできます。

テスト

テストではイベントを発行し、購読側が適切に応答することをアサートできます。

クイックチェック

イベントバスの利点は何ですか。

まとめ

writableストアを使ってシンプルなイベントバスを構築します。発行と購読によって、横断的な通信を疎結合にします。

よくある質問

「StoreによるEvent Busパターン」レッスンは無料ですか?

はい。「StoreによるEvent Busパターン」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Sveltejs Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Sveltejs Academyコースには全4レッスンが含まれています。

「StoreによるEvent Busパターン」で何を学びますか?

writable storeを使ってグローバルなイベントバスを実装し、疎結合な通信を実現します。 ブラウザで直接実行するハンズオンコードでSveltejs Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Sveltejs Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSveltejs Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「StoreによるEvent Busパターン」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSveltejs Academyレッスンでコードを書いて実行できますか?

はい。すべてのSveltejs Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Storeアーキテクチャ:機能モジュール
  2. StoreによるEvent Busパターン
  3. 楽観的UI更新
  4. Storeの履歴によるUndo/Redo
← Sveltejs Academyに戻る