Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Live Coding: Migrating an Application to Signals

Live Coding: Migrating an Application to Signals

Avatar for Manfred Steyer

Manfred Steyer

May 07, 2025
Tweet

More Decks by Manfred Steyer

Other Decks in Programming

Transcript

  1. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 4 Signals:

    Simple Reactivity Signal as Producer 4711 Consumer read set notify 4712
  2. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 11 Building

    Your Reactive Graph desserts = signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({}); ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings()));
  3. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 12 Building

    Your Reactive Graph desserts = signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({}); ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings()));
  4. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten desserts =

    signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({}); ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings())); 14 Building Your Reactive Graph originalName = signal(''); englishName = signal(''); Load Desserts
  5. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 15 Building

    Your Reactive Graph dessertsResource = httpResource(() => ({ url: 'http://demo.angulararchitects.io/...', params: { originalName: this.originalName(), englishName: this.englishName(), } })); desserts = signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({}); ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings()));
  6. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 16 Building

    Your Reactive Graph dessertsResource = httpResource(() => ({ url: 'http://demo.angulararchitects.io/...', params: { originalName: this.originalName(), englishName: this.englishName(), } })); desserts = dessertsResource.value; ratings = signal<DessertIdToRatingMap>({}); ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings()));
  7. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 18 Next

    Steps Service for creating Resource Service for managing Signals (Store)