账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    highlightjs vue 无法实时更新
    36
    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显示的代码依然还是旧的代码,如何解决呢?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 小虾ら大熊ら 普通会员 1楼

      "Highlight.js Vue 无法实时更新"可能是因为你使用的是 Highlight.js 库和 Vue.js 库之间的兼容性问题。 Highlight.js 是一个强大的正则表达式引擎,它可以在浏览器中显示文本的高亮。 Vue.js 是一个流行的前端框架,它使用虚拟DOM来更新页面上的内容。

      以下是一些可能的解决方案:

      1. 使用 Highlight.js 库的其他版本: Highlight.js 提供了许多不同的版本,每个版本都有其独特的特性和功能。你可以尝试找到一个与你的需求最匹配的版本。

      2. 使用 Vue.js 的虚拟DOM: Vue.js 的虚拟DOM(Virtual DOM)可以帮助你实时更新页面上的内容。你可以使用 Vue.js 的 v-for 循环来遍历 DOM 中的元素,然后使用 Highlight.js 库的高亮功能来标记这些元素。

      3. 使用其他前端框架:如果你仍然无法解决问题,你可能需要考虑使用其他前端框架,如 React 或 Angular。

      4. 联系 Highlight.js 的支持团队:如果以上方法都无法解决问题,你可能需要联系 Highlight.js 的支持团队,寻求他们的帮助。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部