Interviewfragen zu Vue mit Antworten
Composition API und Reaktivität, Komponenten und Slots, Composables, Vue Router, Pinia, SSR und Performance.
225 Fragen fürs Vorstellungsgespräch zu Vue mit Antworten und Erklärungen: Level Junior, Middle und Senior. Beispielfragen, Online-Tests und Programmieraufgaben.
- Composition API
- Reactivity
- Pinia
- Vue Router
- SFC
- Nuxt
Fragen nach Level
Junior
Grundbegriffe und Syntax · 50 Fragen
Middle
Praxis, Feinheiten und Optimierung · 50 Fragen
Senior
Architektur, Interna, Randfälle · 50 Fragen
Beispielfragen
Ein paar Fragen aus jedem Level mit richtiger Antwort und Erklärung.
Vue · Junior
- Was ist Vue?
Antwort zeigen
Richtige Antwort: Ein progressives JavaScript-Framework zum Bauen von UIs
„Progressiv“ heißt, man kann damit beginnen, eine einzelne Seite mit Vue anzureichern, und bis zur vollen SPA mit Routing (Vue Router), State-Verwaltung (Pinia) und SSR (Nuxt) wachsen. Die Kernbibliothek konzentriert sich auf die View-Schicht und Reaktivität.
- Wie legt man ein neues Vue-Projekt empfohlen an?
Antwort zeigen
Richtige Antwort:
npm create vue@latestcreate-vuerichtet ein Vite-basiertes Projekt ein und fügt optional TypeScript, Vue Router, Pinia, Vitest, ESLint und End-to-End-Tests hinzu. Die alte Vue CLI (webpack-basiert) ist im Wartungsmodus. - Was ist der Unterschied zwischen Options API und Composition API?
Antwort zeigen
Richtige Antwort: Die Options API gruppiert Code nach Optionstyp, die Composition API nach Feature
Beide werden in Vue 3 unterstützt. Die Composition API (meist über
<script setup>) erleichtert die Wiederverwendung von Logik mit Composables und die Typableitung in TypeScript; die Options API ist für einfachere Komponenten weiterhin in Ordnung. - Was macht
{{ message }}in einem Vue-Template?Antwort zeigen
Richtige Antwort: Rendert den Wert als escapten Text und hält ihn aktuell
Die Mustache-Syntax gibt einfachen Text aus und ist damit sicher vor XSS. Um HTML zu rendern, braucht man
v-html, das nie nicht vertrauenswürdige Inhalte bekommen sollte.
Vue · Middle
- Wie unterscheidet sich
watchEffectvonwatch?Antwort zeigen
Richtige Antwort:
watchEffectläuft sofort und verfolgt, was es liest;watchist lazywatchEffectist knapp, wenn der Effekt denselben State nutzt, von dem er abhängt.watchgibt genaue Kontrolle: nur gelistete Quellen lösen ihn aus, und er kannimmediateoderoncesein. - Was bewirkt
{ deep: true }an einem Watcher?Antwort zeigen
Richtige Antwort: Er feuert bei verschachtelten Änderungen im beobachteten Objekt
Ein
reactive-Objekt direkt zu beobachten ist standardmäßig tief; einen Getter zu beobachten nicht. Tiefes Beobachten großer Strukturen ist teuer - in 3.5 kann man eine Zahl übergeben, um die Tiefe zu begrenzen. - Wann ist
shallowRefdie bessere Wahl gegenüberref?Antwort zeigen
Richtige Antwort: Für große Daten, die sich nur durch Ersetzen von
.valueändernrefmacht verschachtelte Objekte über Proxys tief reaktiv, was bei riesigen Strukturen Zeit kostet.shallowRefverfolgt nur das Ersetzen von.value; nutzetriggerRef, wenn du veränderst und ein Update erzwingen musst. - Warum ist es ein Bug, in einem computed-Getter State zu verändern?
Antwort zeigen
Richtige Antwort: Getter müssen rein sein; Seiteneffekte können Schleifen auslösen
Vue kann den Getter jederzeit ausführen (oder gar nicht, wenn ihn niemand liest). Nutze für Seiteneffekte einen Watcher und halte computed rein abgeleitet.
Vue · Senior
- Wie verfolgt Vue 3 reaktive Abhängigkeiten?
Antwort zeigen
Richtige Antwort: Proxy-Fallen
geterfassen Abonnenten, Fallensetbenachrichtigen sieEffekte (Render-Funktionen, computed, Watcher) registrieren sich, während sie laufen. Proxys fangen auch das Hinzufügen und Löschen von Properties und Änderungen an Array-Indizes ab, was die Getter/Setter von Vue 2 nicht konnten.
- Warum ist
reactive(obj) === objfalse, und warum ist das wichtig?Antwort zeigen
Richtige Antwort: Es liefert einen Proxy, und Schreiben ins Original umgeht das Tracking
Arbeite immer mit dem Proxy.
reactiveauf demselben Objekt liefert denselben Proxy, undtoRaw(proxy)gibt das Original zurück, wenn man unverfolgten Zugriff braucht. - Warum führen 100 State-Änderungen in einem Handler nur zu einem Neurendern?
Antwort zeigen
Richtige Antwort: Updates werden eingereiht und einmal in einer Microtask ausgeführt
Jede Mutation löst Effekte aus, aber Render-Jobs werden in einer Warteschlange dedupliziert.
nextTick()liefert das Promise dieses Durchlaufs. - Was passiert seit Vue 3.4, wenn ein computed auf denselben Wert neu berechnet wird?
Antwort zeigen
Richtige Antwort: Abhängige werden gar nicht ausgelöst
const isEven = computed(() => count.value % 2 === 0)lässt nachgelagerte Effekte nicht mehr erneut laufen, wenncountvon 2 auf 4 geht. Jedes Mal ein neues Objekt zu liefern hebelt das weiterhin aus.
Kombinierte Tests mit diesem Thema
Fragen aus mehreren Themen auf einmal, wie im Vorstellungsgespräch für eine konkrete Stelle.
Programmieraufgaben
Schreib die Lösung direkt im Browser, und Tests prüfen sie sofort. Klassiker aus Vorstellungsgesprächen zu JavaScript (debounce, deepClone, Promise.all, LRU-Cache), zu TypeScript (Generics, Narrowing und Utility Types, geprüft von einem echten Compiler), Backend-Logik in Node.js (Middleware, Rate Limits, Job-Queues), SQL-Abfragen in echtem PostgreSQL und zu React: Komponenten und Hooks wie eine Aufgabenliste, Tabs, useDebounce und useInterval.
Aufgaben öffnen →