当前位置:首页 > 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并集成高亮:

vue实现语法高亮提示

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并配置:

vue实现语法高亮提示

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 中实现下载提示功能,可以通过以下几种方式实现: 方法一:使用 window.confirm 在触发下载操作前,通过 window.confirm 弹出确认对话…

react实现代码提示

react实现代码提示

实现代码提示的基本思路 在React中实现代码提示功能通常需要结合文本编辑器组件(如CodeMirror、Monaco Editor)和语言服务工具(如TypeScript编译器、自定义语法分析器)。…

jquery提示框

jquery提示框

jQuery提示框的实现方法 jQuery提供了多种方式实现提示框功能,可以通过插件或原生方法实现。以下是常见的几种实现方式: 使用jQuery UI Dialog组件 jQuery UI提供了一…

uniapp输入提示

uniapp输入提示

uniapp 输入提示的实现方法 在 uniapp 中实现输入提示功能可以通过多种方式完成,以下是几种常见的方法: 使用 uni-ui 的 uni-search-bar 组件 uni-search…

uniapp提示气泡

uniapp提示气泡

uniapp 实现提示气泡的方法 在 uniapp 中实现提示气泡(Tooltip)效果,可以通过以下几种方式实现: 使用 uni.showToast API uni.showToast 是 uni…

uniapp 卡片提示

uniapp 卡片提示

实现卡片提示的方法 在uniapp中实现卡片提示效果,可以通过多种方式完成,包括使用内置组件、自定义组件或第三方插件。 使用uni.showToast方法 通过uni.showToast可以快速实现…