Ziel: Sie begegnen zum ersten Mal Vue.js-Code. Es geht noch nicht darum, alles zu verstehen – sondern darum, Fragen zu stellen, Muster zu erkennen und zu entdecken, was anders ist als in Vanilla JS.
Öffnen Sie das folgende StackBlitz-Projekt:
→ StackBlitz: FAQ Accordion in Vue.js öffnen
Sie sehen drei Dateien:
App.vue – der Einstiegspunkt der ApplikationAccordion.vue – die Accordion-Komponente mit den FAQ-DatenAccordionItem.vue – eine einzelne Frage-Antwort-Einheit
Lesen Sie den Code aller drei Dateien durch. Notieren Sie:
Es ist völlig normal, wenn vieles noch unklar ist. Notieren Sie Ihre Fragen – wir besprechen sie danach gemeinsam.
In AccordionItem.vue und Accordion.vue kommt ref() vor:
const isOpen = ref(false); const faqData = ref([...]);
Beantworten Sie folgende Fragen schriftlich:
ref() bewirken? Was passiert wohl, wenn sich der Wert von isOpen ändert?const isOpen = false?
Fügen Sie in Accordion.vue im faqData-Array eine fünfte Frage mit einer eigenen Antwort hinzu:
{ question: 'Ihre eigene Frage hier?', answer: 'Ihre eigene Antwort hier.', },
Beobachten Sie, was im Browser passiert, und beantworten Sie:
Vergleichen Sie, wie der Zustand («offen» oder «geschlossen») gesteuert wird:
| Vanilla JS (alt) | Vue.js (neu) | |
|---|---|---|
| Wie wird das Element gefunden? | document.querySelectorAll('.accordion-btn') | ? |
| Wo lebt der Zustand? | Im DOM (classList.contains('open')) | ? |
| Wie wird umgeschaltet? | classList.add('open') | ? |
Füllen Sie die rechte Spalte mit dem aus, was Sie im Vue-Code finden.
Testen Sie das Accordion im Browser: Öffnen Sie mehrere Panels nacheinander.
isOpen definiert ist – in welcher Datei, und für welche Einheit gilt es?Sie müssen das Problem noch nicht lösen – nur erkennen und beschreiben. Das lösen wir gemeinsam in LU09.
Halten Sie zum Abschluss in 2–3 Sätzen fest:
Was ist der grösste Unterschied zwischen dem Vanilla-JS-Accordion und dem Vue-Accordion?