javascript / expert
Snippet
Komponenten-Fehlergrenzen-Abfangung mittels onErrorCaptured Lebenszyklus-Hook
Der `onErrorCaptured`-Hook fängt Fehler ab, die aus untergeordneten Komponentenkomponenten stammen. Die Rückgabe von `false` stoppt das weitere Aufsteigen des Fehlers in der Hierarchie und macht die Elternkomponente zu einer isolierten Fehlergrenze.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import { ref, onErrorCaptured } from 'vue';export function useComponentBoundaryHandler(fallbackLogger) {const errorState = ref(null);onErrorCaptured((err, targetInstance, info) => {errorState.value = {message: err instanceof Error ? err.message : String(err),componentName: targetInstance?.$options.name || 'Anonymous',lifecyclePhase: info};fallbackLogger(err, info);return false;});return { errorState, clearError: () => { errorState.value = null; } };}
vue
Erklärung
1
onErrorCaptured((err, targetInstance, info) => {
Registriert einen Handler für unbehandelte Laufzeitfehler aus untergeordneten Komponenten.
2
componentName: targetInstance?.$options.name || 'Anonymous',
Liest die Instanz-Optionen der Verursacher-Komponente aus, um Metadaten zu gewinnen.
3
return false;
Stoppt die Weiterleitung des Fehlers an übergeordnete Komponenten-Grenzen oder App-Ebene.