vue3引入highlight.js进行代码高亮的方法实例


Posted in Vue.js onApril 08, 2022

背景描述:

在项目开发中,经常一些日志预览,还有文件的预览,需要进行代码高亮显示。这样可以让文本内容展示的时候显得更加友好,也便于阅读

效果类似markdown语法的代码高亮,如下:

<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="自动化测试">
      <stringProp name="TestPlan.comments"></stringProp>
      <boolProp name="TestPlan.functional_mode">false</boolProp>
      <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
      <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
      <elementProp name="TestPlan.user_defined_variables" elementType="Arguments">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
    </TestPlan>

一、安装依赖:

注意:我们需要安装的依赖有两个,网上的博文,都是写的一个,比较坑。
npm install --save highlight.js
npm install --save @highlightjs/vue-plugin
命令行如下

## 这个是highlight.js基础依赖
npm install --save highlight.js
## 安装支持vue3 的@highlightjs/vue-plugin 依赖
npm install --save @highlightjs/vue-plugin

二、在vue3主入口main文件,对highlight进行引入和注册:

需要引入的有

样式 ,在main主入口引入样式为全局统一都使用这个样式,也可以在单独的页面引入,你想要的样式。样式效果参考官网:https://highlightjs.org/static/demo/
更改 import ‘highlight.js/styles/atom-one-dark.css’ 把styles 后面的值改成你想要的样式就行依赖包组件
# --- 文件src/main.ts | src/main.js 
# highlight 的样式,依赖包,组件
import 'highlight.js/styles/atom-one-dark.css'
import 'highlight.js/lib/common'
import hljsVuePlugin from '@highlightjs/vue-plugin'

import { computed, createApp } from 'vue'
import App from './App.vue'

const app = createApp(App)

// 引入代码高亮,并进行全局注册
app.use(hljsVuePlugin)
app.mount('#app')

三、页面使用:

<!-- 把数据绑定到 `code` 属性-->
    <highlightjs autodetect :code="code" />
    <!--或者直接将显示的代码写到 `code`中 -->
    <highlightjs language='javascript' code="var x = 5;" />

示例如下:
可以使用 language 指定具体的语言,如javascript、xml等
这个值省略,highlightjs 也会自动识别对应的语言
vue3引入highlight.js进行代码高亮的方法实例

四、看下效果展示吧:

vue3引入highlight.js进行代码高亮的方法实例

vue3引入highlight.js进行代码高亮的方法实例

五、一些优化:

1.问题

可以看到生成的代码 是pre包裹的,会有个1rem 的margin-bottom,效果不是很好
vue3引入highlight.js进行代码高亮的方法实例

2.解决方法

在对应的页面,使用style 标签,对样式进行重写,注意不要加 scoped

<style lang="scss">
pre {
  margin-bottom: 0;
}
</style>

vue3引入highlight.js进行代码高亮的方法实例

3. 处理后的效果

这个是示例,当然你们可以根据实际的项目进行样式改造
码字不容易,对你有帮助的话,给个点赞吧 ☻ (✿◠‿◠)
更多详情,请查阅官方文档,
官网链接:https://highlightjs.org/
官网github链接:https://github.com/highlightjs/vue-plugin

vue3引入highlight.js进行代码高亮的方法实例

总结

到此这篇关于vue3引入highlight.js进行代码高亮例的文章就介绍到这了,更多相关vue3引入highlight.js代码高亮内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 Vue.js
Vue使用Element实现增删改查+打包的步骤
Nov 25 Vue.js
Vue如何跨组件传递Slot的实现
Dec 14 Vue.js
vue项目如何监听localStorage或sessionStorage的变化
Jan 04 Vue.js
vuex的使用步骤
Jan 06 Vue.js
vue3中轻松实现switch功能组件的全过程
Jan 07 Vue.js
Vue ​v-model相关知识总结
Jan 28 Vue.js
VUE实现吸底按钮
Mar 04 Vue.js
Vue elementUI表单嵌套表格并对每行进行校验详解
Feb 18 Vue.js
深入讲解Vue中父子组件通信与事件触发
Mar 22 Vue.js
vue实现列表拖拽排序的示例代码
Apr 08 Vue.js
Vue Element plus使用方法梳理
Dec 24 Vue.js
vue中的可拖拽宽度div的实现示例
vue 实现弹窗关闭后刷新效果
Apr 08 #Vue.js
vue中this.$http.post()跨域和请求参数丢失的解决
Apr 08 #Vue.js
vue实现书本翻页动画效果实例详解
Apr 08 #Vue.js
vue实现列表拖拽排序的示例代码
vue实现可以快进后退的跑马灯组件
Apr 08 #Vue.js
Axios代理配置及封装响应拦截处理方式
You might like
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
php使用curl发送json格式数据实例
2013/12/17 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
php文档工具PHP Documentor安装与使用方法
2016/01/25 PHP
PHP+iframe图片上传实现即时刷新效果
2016/11/18 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
实例解析php的数据类型
2018/10/24 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
javascript prototype,executing,context,closure
2008/12/24 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
JavaScript全排列的六种算法 具体实现
2013/06/29 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
javascript中BOM基础知识总结
2017/02/14 Javascript
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
详解Vue demo实现商品列表的展示
2019/05/07 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
2019/07/05 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
django定期执行任务(实例讲解)
2017/11/03 Python
python 输出上个月的月末日期实例
2018/04/11 Python
python通过paramiko复制远程文件及文件目录到本地
2019/04/30 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
Anaconda和ipython环境适配的实现
2020/04/22 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
阿尔卡特(中国)的面试题目
2014/08/20 面试题
网络工程师的自我评价
2013/10/02 职场文书
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
地球物理学专业推荐信
2014/09/08 职场文书
个人求职自荐信范文
2015/03/06 职场文书
电影雷锋观后感
2015/06/10 职场文书