当前位置:首页 > VUE

vue实现语法高亮提示

2026-01-22 23:33:10VUE

使用 Prism.js 实现语法高亮

安装 Prism.js 库
通过 npm 或 yarn 安装 Prism.js 核心库及需要的语言插件:

npm install prismjs

引入 Prism.js 和样式
在 Vue 组件中引入 Prism.js 核心和所需语言支持:

import Prism from 'prismjs';
import 'prismjs/themes/prism.css'; // 默认主题
import 'prismjs/components/prism-javascript'; // 加载 JavaScript 语法支持

高亮代码逻辑
mounted 或需要高亮的时机调用 Prism.highlightAll()

mounted() {
  this.$nextTick(() => {
    Prism.highlightAll();
  });
}

模板中使用 <pre><code> 标签
确保代码包裹在标准的 Prism.js 结构内:

<pre><code class="language-javascript">
  const example = 'Hello, Prism.js!';
</code></pre>

使用 highlight.js 实现语法高亮

安装 highlight.js
通过 npm 安装核心库及样式:

npm install highlight.js

配置 Vue 全局指令
注册一个自定义指令自动高亮代码:

import hljs from 'highlight.js';
import 'highlight.js/styles/github.css'; // 选择喜欢的样式主题

Vue.directive('highlight', {
  inserted(el) {
    hljs.highlightBlock(el);
  }
});

模板中使用指令
通过 v-highlight 指令触发高亮:

<pre v-highlight><code class="javascript">
  function test() { return true; }
</code></pre>

动态代码高亮更新

监听内容变化
使用 Vue 的 watch 或结合 updated 钩子重新高亮:

watch: {
  codeContent(newVal) {
    this.$nextTick(() => {
      Prism.highlightAll(); // 或 hljs.initHighlighting.called = false; hljs.highlightAll();
    });
  }
}

使用 Monaco Editor 实现 IDE 级高亮

集成 Monaco Editor
适用于需要复杂编辑功能的场景:

npm install monaco-editor

初始化编辑器
在组件中创建编辑器实例:

import * as monaco from 'monaco-editor';

export default {
  mounted() {
    this.editor = monaco.editor.create(this.$refs.editorContainer, {
      value: '// your code here',
      language: 'javascript',
      theme: 'vs-dark'
    });
  }
}

模板容器
添加一个承载编辑器的 DOM 元素:

<div ref="editorContainer" style="height: 400px; width: 100%;"></div>

自定义主题和语言扩展

扩展 Prism.js 语言
手动加载未包含的语言定义:

import 'prismjs/components/prism-typescript';

自定义 highlight.js 样式
替换引入的 CSS 文件即可更换主题:

import 'highlight.js/styles/atom-one-dark.css';

Monaco 主题定制
通过 monaco.editor.defineTheme 定义自定义主题:

monaco.editor.defineTheme('myTheme', {
  base: 'vs',
  inherit: true,
  rules: [{ token: 'comment', foreground: 'FF0000' }]
});

vue实现语法高亮提示

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

相关文章

vue实现建议提示

vue实现建议提示

Vue 实现建议提示的方法 使用 v-model 和计算属性 通过 v-model 绑定输入框的值,结合计算属性实现建议提示功能。计算属性根据输入内容过滤建议列表。 <template>…

vue实现搜索提示

vue实现搜索提示

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

vue实现消息提示

vue实现消息提示

Vue 实现消息提示的方法 在 Vue 中实现消息提示功能可以通过多种方式完成,以下是几种常见的实现方法。 使用 Vue 插件(如 Element UI、Vant 等) Element UI 提供…

vue js语法实现

vue js语法实现

Vue.js 语法实现指南 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是 Vue.js 的核心语法实现方法: 模板语法 Vue.js 使用基于 HTML 的模板…

vue语音提示实现

vue语音提示实现

实现语音提示的方法 使用Web Speech API Vue中可以集成浏览器原生的Web Speech API实现语音合成(TTS)。通过SpeechSynthesisUtterance对象设置文本、…

vue实现更新提示

vue实现更新提示

实现更新提示的基本思路 在Vue中实现更新提示通常需要结合版本检测和用户交互逻辑。核心是通过对比本地版本与远程版本,当检测到新版本时触发提示机制。 版本检测方法 使用package.json中的版…