首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue动态部件.安装表

Vue动态部件.安装表
EN

Stack Overflow用户
提问于 2019-01-09 03:24:00
回答 1查看 1.2K关注 0票数 0

我使用Webpack动态导入和Vue 动态分量来延迟加载一个相当大的Vue标记解析组件。

现在,我想用Prism.js添加语法突出显示。我目前正在使用父组件的mounted()生命周期挂钩来安装语法突出显示,但这只是在某些时候才起作用,因为语法突出显示依赖于要首先加载的Markdown组件(当我在页面加载后从控制台手动执行Prism.highlightAll()时,每次都有效)。

相关源代码:

代码语言:javascript
复制
<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>

那么,如何等待动态组件加载呢?我几乎想要这样的东西:

代码语言:javascript
复制
<vue-markdown v-on:mounted="syntaxHighlighting()"></vue-markdown>
EN

回答 1

Stack Overflow用户

发布于 2019-01-09 04:14:03

我通过创建自己的组件来解决这个问题,它扩展了VueMarkdown组件,但是使用了一个激活语法突出显示的mounted()钩子。看起来是这样的:

代码语言:javascript
复制
<script>
import VueMarkdown from "vue-markdown/src/VueMarkdown"
import "prismjs/themes/prism-tomorrow.css"
import Prism from "prismjs"

export default {
    extends: VueMarkdown,
    mounted() {
        Prism.highlightAll()
    }
}
</script>

然后,我动态地将这个组件导入父组件。

但不确定这是不是最好的解决办法..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54102812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档