highlightjs vue 无法实时更新

发布于 2022-09-07 16:36:34 字数 917 浏览 22 评论 0

代码如下:

<no-ssr placeholder="加载中" v-highlight>
      <pre>{{mycode}}<code style="atom-one-dark" :class="myCodeClass">{{mycode}}</code></pre>
    </no-ssr>
const hljs = require('highlight.js');

    Vue.directive('highlight', {

        

        inserted: el => {

            let blocks = el.querySelectorAll('pre code');

            blocks.forEach( (block) => {
                hljs.highlightBlock(block);
            });

            console.log('test1');

        },

        componentUpdated: el => {

            let blocks = el.querySelectorAll('pre code');

            blocks.forEach( (block) => {
                hljs.highlightBlock(block);
            });

            console.log('test22', blocks);

        },

    });

当mycode这个变量更新的时候,html里面的{{mycode}}是实时更新的。但是highlightjs显示的代码依然还是旧的代码,如何解决呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

可爱暴击 2022-09-14 16:36:34

自己解决了。
我发现人家已经写好了插件了。具体可以看人家的源码实现:
https://github.com/metachris/...

请你别敷衍 2022-09-14 16:36:34

怎么解决的?我这里也遇到了这个问题

逆光下的微笑 2022-09-14 16:36:34

用了,但是没有效果啊

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文