当前位置:首页 > VUE

vue实现语法高亮提示

2026-02-23 14:15:33VUE

实现语法高亮的方法

使用highlight.js
安装highlight.js并引入核心功能及需要的语言包:

npm install highlight.js

在Vue组件中注册并应用高亮样式:

import hljs from 'highlight.js/lib/core';
import javascript from 'highlight.js/lib/languages/javascript';
import 'highlight.js/styles/github.css'; // 选择主题样式

hljs.registerLanguage('javascript', javascript);

export default {
  mounted() {
    document.querySelectorAll('pre code').forEach((block) => {
      hljs.highlightElement(block);
    });
  }
};

在模板中使用<pre><code>包裹代码:

<pre><code class="javascript">
  const message = "Hello, Vue!";
  console.log(message);
</code></pre>

结合vue-markdown与语法高亮
若需支持Markdown中的代码块,安装vue-markdown并集成高亮:

npm install vue-markdown highlight.js

配置Vue组件:

import VueMarkdown from 'vue-markdown';
import hljs from 'highlight.js';

export default {
  components: { VueMarkdown },
  methods: {
    highlight(code, lang) {
      if (lang && hljs.getLanguage(lang)) {
        return hljs.highlight(lang, code).value;
      }
      return hljs.highlightAuto(code).value;
    }
  }
};

模板中使用vue-markdown并传递高亮函数:

<vue-markdown 
  :source="yourMarkdownText" 
  :html="false" 
  :highlight="highlight" 
/>

使用prismjs替代方案
安装prismjs并配置:

npm install prismjs

在Vue组件中引入:

import Prism from 'prismjs';
import 'prismjs/themes/prism-tomorrow.css'; // 主题样式

export default {
  mounted() {
    Prism.highlightAll();
  }
};

模板中使用<pre><code>并指定语言类:

<pre><code class="language-javascript">
  function test() { return "Prism"; }
</code></pre>

动态内容的高亮更新
若需在动态内容变化后重新高亮,调用高亮函数:

this.$nextTick(() => {
  hljs.highlightAll(); // 或 Prism.highlightAll()
});

注意事项

  • 主题样式需单独引入,可从库的styles目录选择。
  • 动态加载语言包可减少初始体积,按需注册语言。
  • 服务端渲染(SSR)场景需避免document直接操作,改用v-html或插件。

vue实现语法高亮提示

标签: 语法提示
分享给朋友:

相关文章

vue实现搜索提示

vue实现搜索提示

Vue实现搜索提示的方法 使用Vue实现搜索提示功能可以通过以下几种方式实现: 使用v-model和计算属性 在Vue组件中绑定输入框的v-model,通过计算属性过滤匹配的数据。 <te…

vue实现提示组件

vue实现提示组件

Vue 实现提示组件的方法 使用 Vue 原生方式创建 创建一个基础的提示组件,可以通过 v-if 或 v-show 控制显示状态,并通过 props 传递消息内容和类型。 <template…

vue实现气泡框提示

vue实现气泡框提示

实现气泡框提示的方法 在Vue中实现气泡框提示可以使用多种方式,包括使用内置组件、第三方库或自定义实现。以下是几种常见的方法: 使用Element UI的Tooltip组件 Element UI提…

vue用什么语法实现

vue用什么语法实现

Vue 的语法实现 Vue 使用基于 HTML 的模板语法,结合 JavaScript 实现数据绑定和组件化开发。以下是 Vue 的核心语法实现方式: 模板语法 Vue 的模板语法允许开发者声明式…

vue实现编辑提示功能

vue实现编辑提示功能

实现编辑提示功能的步骤 使用v-model绑定数据 在Vue中,可以通过v-model指令实现双向数据绑定。在编辑模式下,将输入框与数据绑定,非编辑模式下显示文本内容。 <template&…

实现vue的mustache语法

实现vue的mustache语法

Vue 的 Mustache 语法实现 Mustache 语法(双大括号 {{ }})是 Vue 的核心模板语法之一,用于将数据绑定到 DOM。以下是实现 Vue Mustache 语法的关键步骤:…