当前位置:首页 > VUE

vue实现代码块

2026-01-23 15:48:50VUE

Vue 实现代码块的常用方法

使用第三方库如 highlight.js
安装 highlight.js 并配置 Vue 插件,通过自定义指令或组件实现代码高亮。

npm install highlight.js

在 Vue 中注册全局指令:

import hljs from 'highlight.js';
import 'highlight.js/styles/github.css'; // 引入样式

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

模板中使用:

<pre v-highlight><code class="javascript">const foo = 'bar';</code></pre>

封装可复用的代码块组件
创建 CodeBlock.vue 组件,动态加载语言高亮规则。

<template>
  <pre><code :class="language" ref="code">{{ content }}</code></pre>
</template>

<script>
import hljs from 'highlight.js';

export default {
  props: ['content', 'language'],
  mounted() {
    hljs.highlightBlock(this.$refs.code);
  }
};
</script>

调用示例:

<code-block content="console.log('Hello')" language="javascript" />

结合 Markdown 渲染
若需要渲染 Markdown 中的代码块,使用 markedhighlight.js 组合。

npm install marked highlight.js

配置 Markdown 解析器:

import marked from 'marked';
import hljs from 'highlight.js';

marked.setOptions({
  highlight: (code, lang) => hljs.highlight(lang, code).value
});

在 Vue 中转换 Markdown:

<div v-html="compiledMarkdown"></div>

<script>
export default {
  computed: {
    compiledMarkdown() {
      return marked('```js\nconst x = 1;\n```');
    }
  }
};
</script>

动态语言切换
通过 watch 监听语言变化,重新高亮代码块。

watch: {
  language() {
    this.$nextTick(() => {
      hljs.highlightBlock(this.$refs.code);
    });
  }
}

注意事项

vue实现代码块

  • 样式需单独引入,如 github.cssatom-one-dark.css
  • 避免直接使用 v-html 渲染未过滤的内容,防止 XSS 攻击。
  • 服务端渲染 (SSR) 需检查 highlight.js 的兼容性。

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

相关文章

vue怎么实现数据检测

vue怎么实现数据检测

Vue 数据检测的实现方式 Vue 通过响应式系统实现数据检测,核心机制基于 Object.defineProperty(Vue 2)或 Proxy(Vue 3)。以下是具体实现方法: 基于 Vue…

vue实现ios

vue实现ios

Vue 实现 iOS 风格应用 使用 Vue 实现 iOS 风格的应用,可以通过结合 UI 框架和自定义样式来达成目标。以下是具体方法和步骤: 选择 iOS 风格的 UI 框架 Vue 生态中有多…

vue实现driver

vue实现driver

Vue 实现 Driver.js 引导功能 Driver.js 是一个轻量级的 JavaScript 库,用于在网页上创建引导式导览。以下是在 Vue 项目中集成 Driver.js 的详细方法:…

vue实现Siri

vue实现Siri

Vue 实现 Siri 风格语音交互 实现类似 Siri 的语音交互功能需要结合语音识别、语音合成和前端交互逻辑。Vue 作为前端框架,可以很好地管理这些功能的交互状态。 语音识别集成 使用 Web…

vue实现系统

vue实现系统

Vue 实现系统的核心方法 使用 Vue.js 构建系统时,需结合其响应式特性与组件化开发模式。以下为关键实现路径: 项目初始化与工程配置 通过 Vue CLI 或 Vite 创建项目骨架,推荐选择…

vue拼图实现

vue拼图实现

实现 Vue 拼图游戏的方法 使用 Vue 组件和动态数据绑定 创建一个 Vue 组件来管理拼图的状态和逻辑。通过 v-for 动态渲染拼图块,利用 v-bind 绑定样式和位置。拼图块的数据可以存储…