Wzorzec magistrali zdarzeń ze store'ami
Zaimplementuj globalną magistralę zdarzeń za pomocą zapisywalnego store'a, aby zapewnić luźno powiązaną komunikację.
Wzorzec magistrali zdarzeń ze store'ami to bezpłatna lekcja Sveltejs Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Sveltejs Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Sveltejs Academy zawiera 4 lekcji w sumie.
Magistrala zdarzeń
Magistrala zdarzeń to globalny kanał publikowania i subskrybowania zdarzeń, służący do komunikacji bez ścisłych zależności.
Implementacja za pomocą writable
Prosty kanał może stanowić writable store przechowujący najnowsze zdarzenie.
const bus = writable(null);
export function emit(event) { bus.set(event); }
export function on(fn) { return bus.subscribe(e => { if (e) fn(e); }); }Przypadek użycia
Jeden komponent emituje zdarzenie powiadomienia typu toast, a inny je subskrybuje i wyświetla powiadomienia globalnie.
Rozdzielenie zależności
Nadawca i odbiorca nie importują się wzajemnie; oba elementy zależą od magistrali.
Bezpieczeństwo typów
Zdarzenia należy typować jako rozłączną unię typów, aby zapewnić bezpieczeństwo subskrybentów.
type Event = { type: "toast"; text: string } | { type: "logout" };Jednorazowa subskrypcja
W komponentach należy użyć skrótu $, który automatycznie anuluje subskrypcję.
Wiele magistral
Należy podzielić je według domen, na przykład appBus, modalBus i audioBus, aby uniknąć jednego ogromnego kanału.
Antywzorzec
Nadużywanie magistral zdarzeń prowadzi do niejawnego przepływu danych. Gdy własność jest jasno określona, należy preferować bezpośrednie właściwości lub store'y.
Semantyka odtwarzania
Store'y writable przechowują tylko najnowszą wartość. Aby zachować pełną historię zdarzeń, należy użyć store'a tablicowego.
Zdarzenia zewnętrzne
Magistrala zdarzeń może również opakowywać zdarzenia przeglądarki, takie jak zmiana rozmiaru okna lub skróty klawiszowe.
Testowanie
Testy mogą emitować zdarzenia i sprawdzać, czy subskrybenci odpowiednio na nie reagują.
Szybkie sprawdzenie
Jaka jest korzyść z używania magistrali zdarzeń?
Podsumowanie
Prostą magistralę zdarzeń należy zbudować za pomocą writable store'a. Emitowanie i subskrybowanie zdarzeń umożliwia komunikację między niezależnymi elementami.
Często zadawane pytania
Czy lekcja „Wzorzec magistrali zdarzeń ze store'ami” jest bezpłatna?
Tak — pełny tekst „Wzorzec magistrali zdarzeń ze store'ami” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Sveltejs Academy, przejdź na CoddyKit PRO. Kurs Sveltejs Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Wzorzec magistrali zdarzeń ze store'ami”?
Zaimplementuj globalną magistralę zdarzeń za pomocą zapisywalnego store'a, aby zapewnić luźno powiązaną komunikację. Ćwiczysz Sveltejs Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Sveltejs Academy?
Nie wymagamy żadnego doświadczenia. Sveltejs Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Wzorzec magistrali zdarzeń ze store'ami”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Sveltejs Academy?
Tak. Każda lekcja Sveltejs Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Architektura store'ów: moduły funkcjonalne
- Wzorzec magistrali zdarzeń ze store'ami
- Optymistyczne aktualizacje UI
- Cofanie i ponawianie ze stosem historii store'a