Vue · Senior · Frage 7 von 75
Was geht schief, wenn ein Lifecycle-Hook in einer normalen Funktion setup() nach await registriert wird?
export default {
async setup() {
const data = await load();
onMounted(() => init(data)); // problem
},
};- 1Die aktuelle Instanz geht verloren, der Hook wird nicht registriert
- 2Die Komponente wird zweimal gemountet, vor und nach dem
await - 3Nichts: Hooks lassen sich zu jedem Zeitpunkt registrieren
Antwort zeigen
Richtige Antwort: Die aktuelle Instanz geht verloren, der Hook wird nicht registriert
Erklärung
Hooks, watch und inject stützen sich auf die aktive Instanz, die nur beim synchronen Setup gesetzt ist. Registriere sie vor dem ersten await oder nutze <script setup>, dessen Compiler den Kontext bewahrt.