当前位置:首页 > 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 组件,动态加载语言高亮规则。

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 解析器:

vue实现代码块

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);
    });
  }
}

注意事项

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

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

相关文章

vue实现微博发布动态

vue实现微博发布动态

使用Vue实现微博发布动态功能 创建Vue组件结构 新建一个WeiboPost.vue组件,包含文本框、图片上传和发布按钮: <template> <div class="we…

vue组件实现

vue组件实现

Vue 组件实现基础 Vue 组件是 Vue.js 的核心特性之一,允许将 UI 拆分为独立、可复用的模块。组件的实现包括定义、注册、数据传递和生命周期管理等。 定义组件 组件可以通过单文件组件(.…

实现简易vue

实现简易vue

实现简易 Vue 的核心思路 Vue 的核心功能包括数据响应式、模板编译和虚拟 DOM。以下是一个简易实现方案,涵盖核心功能模块。 数据响应式系统 通过 Object.defineProperty…

vue实现开关

vue实现开关

Vue 实现开关组件的方法 使用原生HTML和Vue数据绑定 通过v-model绑定复选框的checked状态,结合CSS样式实现开关效果: <template> <label…

vue实现ide

vue实现ide

Vue 实现 IDE 的基本思路 使用 Vue 构建一个简易的集成开发环境(IDE)需要整合代码编辑器、文件管理、终端模拟等功能。以下是关键实现步骤和推荐工具。 核心功能模块 代码编辑器 使用…

vue实现项目

vue实现项目

Vue 项目实现指南 环境准备 确保已安装 Node.js(建议版本 14+)和 npm/yarn。通过以下命令检查版本: node -v npm -v 创建 Vue 项目 使用 Vue CLI 快…