suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Dynamisch geladene Komponenten-Hooks von Vue 3 werden nicht ausgelöst

Ich habe diese (kurz für Frage) einzelne Dateikomponente (vue 3.2.31):

<template lang="pug">
.test Hello world!
</template>
<style lang="sass" scoped>
.test
  font-weight: bold
</style>
<script setup lang="ts">

onMounted(() => {
  console.log('Mounted');
});

</script>

Es wird über vitejs gebündelt, beispielsweise als NamedExport exportiert und bei Bedarf als base64-codierte Zeichenfolge auf der Clientseite importiert.

const component = await defineAsyncComponent(async () => {

  // A module that exports multiple components.
  const module = await import(base64StringSentFromTheServer);

  // Choose one.
  return module['NamedExport']);

})

Dann muss das Ergebnis sein:

<component :is="component" />

Es funktioniert einwandfrei , bis auf zwei Dinge: Zum einen wird der Hook nicht aufgerufen (in diesem Fall onMounted) und zum anderen wird auch der Style-Importer nicht aufgerufen.

Ist das erwartetes Verhalten oder übersehe ich etwas? Ist <script setup> der Weg, verantwortungsvolle Komponenten zu schreiben?

P粉063862561P粉063862561251 Tage vor384

Antworte allen(1)Ich werde antworten

  • P粉128563140

    P粉1285631402024-03-28 14:19:34

    看来我有两个 Vue 实例正在运行(一个与我的包捆绑在一起,带有汇总,另一个在脚本本身中导入),并且由于未知的原因,这两个实例都没有运行调用挂钩。

    通过删除其中一个实例(实际上,在汇总构建配置中将 vue 作为外部传递),它现在可以正常工作。

    Antwort
    0
  • StornierenAntwort