当前位置:首页 > VUE

vue实现代码块

2026-02-24 06:23:28VUE

在Vue中实现代码块

使用<pre><code>标签

在Vue模板中可以直接使用HTML的<pre><code>标签来包裹代码内容。这种方式简单直接,适合静态代码展示。

<template>
  <pre><code>
    function helloWorld() {
      console.log('Hello, World!');
    }
  </code></pre>
</template>

使用第三方库highlight.js

highlight.js是一个流行的代码高亮库,支持多种编程语言。通过Vue的指令或组件可以方便地集成。

安装highlight.js

npm install highlight.js

在Vue组件中使用:

<template>
  <pre v-highlightjs><code class="javascript">
    function helloWorld() {
      console.log('Hello, World!');
    }
  </code></pre>
</template>

<script>
import hljs from 'highlight.js';
import 'highlight.js/styles/github.css';

export default {
  directives: {
    highlightjs(el) {
      hljs.highlightElement(el);
    }
  }
};
</script>

使用prismjs

prismjs是另一个强大的代码高亮库,支持更多自定义选项。

安装prismjs

npm install prismjs

在Vue组件中使用:

<template>
  <pre><code class="language-javascript">
    function helloWorld() {
      console.log('Hello, World!');
    }
  </code></pre>
</template>

<script>
import Prism from 'prismjs';
import 'prismjs/themes/prism.css';

export default {
  mounted() {
    Prism.highlightAll();
  }
};
</script>

动态代码块

如果需要动态渲染代码块,可以通过Vue的v-forv-if指令结合上述方法实现。

<template>
  <div>
    <pre v-for="(code, index) in codeBlocks" :key="index">
      <code class="language-javascript">{{ code }}</code>
    </pre>
  </div>
</template>

<script>
export default {
  data() {
    return {
      codeBlocks: [
        'function hello() { console.log("Hello"); }',
        'function world() { console.log("World"); }'
      ]
    };
  }
};
</script>

使用Vue插件vue-code-highlight

vue-code-highlight是一个专门为Vue设计的代码高亮插件,简化了集成过程。

安装插件:

npm install vue-code-highlight

在Vue中使用:

vue实现代码块

<template>
  <vue-code-highlight language="javascript">
    function helloWorld() {
      console.log('Hello, World!');
    }
  </vue-code-highlight>
</template>

<script>
import VueCodeHighlight from 'vue-code-highlight';

export default {
  components: {
    VueCodeHighlight
  }
};
</script>

以上方法可以根据具体需求选择,静态内容推荐使用<pre><code>标签,动态或复杂场景推荐使用highlight.jsprismjs

标签: 代码vue
分享给朋友:

相关文章

vue实现一个系统

vue实现一个系统

Vue 系统实现步骤 项目初始化与配置 使用 Vue CLI 或 Vite 创建项目: npm init vue@latest my-system 选择需要的配置(Router、Pinia 等)。…

vue实现文章锚点定位

vue实现文章锚点定位

实现文章锚点定位的方法 在Vue中实现文章锚点定位可以通过多种方式完成,以下是几种常见的方法: 使用原生HTML锚点 通过HTML的id属性和<a>标签的href属性实现锚点跳转。在Vu…

vue实现弹窗

vue实现弹窗

Vue 实现弹窗的常见方法 使用组件化方式封装弹窗 创建一个独立的弹窗组件(如 Modal.vue),通过 v-if 或 v-show 控制显示隐藏: <template> <…

vue 实现pc

vue 实现pc

Vue 实现 PC 端应用的核心要点 Vue.js 是一个渐进式框架,适合构建 PC 端单页应用(SPA)或复杂的前端界面。以下是实现 PC 端应用的关键方法和注意事项: 项目初始化与工程化配置 使…

vue拖动实现

vue拖动实现

实现 Vue 拖动功能的方法 使用 HTML5 拖放 API 在 Vue 中可以利用 HTML5 的原生拖放 API 实现拖动功能。通过 draggable 属性标记可拖动元素,结合 @dragsta…

vue实现通讯

vue实现通讯

Vue 组件通讯方法 父子组件通讯 父组件向子组件传递数据通过 props,子组件向父组件传递数据通过 $emit 事件。 父组件模板: <child-component :message=…