美文网首页前端开发那些事儿
vue中使用highlight.js 高亮代码块

vue中使用highlight.js 高亮代码块

作者: 蓝海00 | 来源:发表于2020-03-18 11:48 被阅读0次

    项目环境

    近期在做旧项目的重构,在搭建新项目的时候使用了Vue+Typescript,在前期的准备工作时,想做一套针对于公司的ui组件库,element-ui很好,但是个人喜欢花里胡哨。希望用户能操作的元素上增添些动画效果。故而自己开始设计些常有的效果组件。所有使用到了highlight.js这个插件。

    一、安装Highlight.js依赖项

    npm install --save highlight.js
    

    二、自定义Vue.js指令:v-highlightjs

    在Vue.js组件中使用highlight.js,我们将创建一个名为highlightjs的自定义Vue.js指令。在main.ts文件中直接声明此指令:

    // 代码高亮插件
    import hljs from 'highlight.js';
    // 必须导入 否则没样式
    import 'highlight.js/styles/atom-one-dark-reasonable.css';
    const high: any = {
      deep: true,
      bind: function (el: any, binding: any) {
        const targets = el.querySelectorAll('code')
        targets.forEach((target: any) => {
          if (binding.value) {
            target.textContent = binding.value;
          }
          (hljs as any).highlightBlock(target);
        })
      },
      componentUpdated: function (el: any, binding: any) {
        const targets = el.querySelectorAll('code')
        targets.forEach((target: any) => {
          if (binding.value) {
            target.textContent = binding.value;
            (hljs as any).highlightBlock(target);
          }
        })
      }
    }
    Vue.directive('highlightjs', high)
    

    三、使用v-highlight.js

    <pre v-highlightjs><code class="javascript">{{ sourcecode }}</code></pre>
    
    <pre v-highlightjs="sourcecode"><code class="javascript"></code></pre>
    

    四、选择样式

    highlightjs官网
    选择想要的styles,然后在main.ts的导入样式文件给替换成对应的右侧文件即可

    相关文章

      网友评论

        本文标题:vue中使用highlight.js 高亮代码块

        本文链接:https://www.haomeiwen.com/subject/jmjfyhtx.html