Vite+Vue3+TS中解决PrismJS显示JSON数据不高亮的问题

Vite+Vue3+TS中解决PrismJS显示JSON数据不高亮的问题

在使用prismjs库高亮代码的时候,HTML、JS和CSS都能正常高亮,但是在现实JSON数据的时候就不高亮,经过一番折腾,最后解决办法如下:

必须导入js高亮组件

没错,就是这句

js 复制代码
import "prismjs/components/prism-json"

想要显示舒服的代码字体,可以单独设置字体

css 复制代码
pre {
	span {
	    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
	}
	code {
	    font-size: 16px !important;
	}
}

完整代码如下:

js 复制代码
<template>
	<pre class="line-numbers"><code :class="`language-${type}`" v-text="code" /></pre>
</template>

<script setup lang="ts">
import { onMounted } from "vue"
import Prism from "prismjs"
import "prismjs/themes/prism-tomorrow.min.css"
import "prismjs/components/prism-json"

const props = withDefaults(defineProps<{
    type?: string
    code: string
}>(), {
    type: "json"
})

watch(() => props.code, () => {
    nextTick(() => {
        Prism.highlightAll()
    })
})
onMounted(() => {
    nextTick(() => {
        Prism.highlightAll()
    })
})
</script>
<style lang="scss">
pre {
	span {
	    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
	}
	code {
	    font-size: 16px !important;
	}
}
</style>

完结,撒花✿✿ヽ(°▽°)ノ✿

相关推荐
fruge4 分钟前
Vue3 实战避坑:10 个 Composition API 高频错误及修复方案
前端·javascript·vue.js
郑板桥3011 分钟前
如何自定义一个MCP服务器:从零到一的完整指南
前端·vscode
BlackWolfSky17 分钟前
Web基础
前端
b***666122 分钟前
【慕伏白教程】Zerotier 连接与简单配置
android·前端·后端
我爱学习_zwj25 分钟前
《第七章》TS工程基础:检查指令与类型声明实战
前端·typescript
关于不上作者榜就原神启动那件事25 分钟前
心跳机制详解
java·前端·servlet
杀死那个蝈坦25 分钟前
Redis 持久化 主从 哨兵 分片集群
前端·bootstrap·html
eason_fan27 分钟前
什么是模块联邦?(Module Federation)
前端·javascript·前端工程化
J总裁的小芒果32 分钟前
el-table 假数据合并
javascript·vue.js·elementui