Я использую динамический импорт Webpack и динамические компоненты Vue для отложенной загрузки довольно большого компонента анализа разметки Vue.
Теперь я хочу добавить подсветку синтаксиса с помощью Prism.js. В настоящее время я использую хук жизненного цикла mounted()
родительского компонента для установки подсветки синтаксиса, но это работает только в некоторых случаях, поскольку подсветка синтаксиса зависит от компонента Markdown, который должен быть загружен первым (когда я выполняю * 1006 вручную * из консоли после загрузки страницы, она работает каждый раз).
Соответствующий исходный код:
<template>
<vue-markdown>
# Hello
```javascript
import { hello } from "world"
```
</vue-markdown>
</template>
<script>
export default {
components: {
"vue-markdown": () => import("vue-markdown/src/VueMarkdown"),
},
mounted() {
import("prismjs/themes/prism-tomorrow.css")
.then(() => import("prismjs").then(p => Prism.highlightAll()))
}
}
</script>
Итак, как мне ждать загрузки динамического компонента? Я почти хочу что-то вроде этого:
<vue-markdown v-on:mounted="syntaxHighlighting()"></vue-markdown>