Vue.js Coding Workshop
Short Link für das Repo: https://bit.ly/vue-mit-luis
Example
Step 1
- Einbindung des Vue.js scripts:
<script src='https://unpkg.com/vue@next'></script>
- Komponente mit einfachem Template definieren.
- Komponente in das HTML mounten
Step 2
- Counter implementieren mit der Options API
- Counter neu schreiben mit der Composition API
Step 3
- Button Label als Prop
- Das Label als computed Property berechnen
Step 4
- Headline als Prop in den counter reichen
- Watch für den count implementieren
- Custom event emitten
Challenge
Setup
Datei findet sich hier: die Datei
Aufgabe
Eine Überschrift, zwei Text Felder und eine Checkbox. Die Eingabe aus den Text-Feldern soll im Titel dargestellt werden. Die Checkbox ändert die Art der Überschrift (Hallo Herr [nachname] oder Moin [vorname]).
Lösung
Lösungen mit Composition und Options API finden sich in HIER und HIER
Reactivity
Step 1
- Darstellung von UseCase
- price, count => total
Step 2
- Definition des Effects
- Effect wird zweimal aufgerufen
Step 3
- Erstellung der deps (new Set())
- impl track Funktion
- iml trigger Funktion
Step 4
- Daten in Objekt umwandeln (cart)
- Erstellung depsMap (new Map())
- Erweiterung von track (key)
- Erweiterung von trigger (key)
- Funktionsaufrufe anpassen
Step 5
- Erstellung von targetMap (new WeakMap())
- Erweiterung von track (target)
- Erweiterung von trigger (target)
- Funktionsaufrufe anpassen
Step 6
- Impl reactive Funktion
- Proxy get Trap (target, key, receiver) + track
- Proxy set Trap (target, key, value, receiver) + trigger
- Löschen von manuellem trigger
Step 7
- Manuellen effect() Aufruf entfernen
- effect Hilfsfunktion
- activeEffect Variable
- Erweiterung von track() + null-check von active Effect
Bonus
- Impl ref funktion (value)
- Erstellt Objekt r
- get Accessor return value + track
- set Accessor value = newValue + trigger
- Beispiel Anpassen (kein cart sondern zwei Werte)