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>

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

相关推荐
Refly4 分钟前
【微信接入 OpenClaw 龙虾🦞】10分钟手把手教程完成接入,Claude 模型无限使用
前端·微信·github
恋猫de小郭11 分钟前
为什么中转渠道的顶级模型会不好用?这是一个技术问题
前端·人工智能·ai编程
发现一只大呆瓜16 分钟前
React-深度拆解 React路由:从实战进阶到底层原理
前端·react.js·面试
不甜情歌17 分钟前
搞懂 Promise:告别回调嵌套,再也不怕异步代码乱成麻
前端·javascript
野草arthas19 分钟前
什么是视觉层次?为什么需要它?
前端
发现一只大呆瓜31 分钟前
React-手把手带你实现 Keep-Alive 效果
前端·react.js·面试
酉鬼女又兒1 小时前
入门前端CSS 媒体查询全解析:从入门到精通,打造完美响应式布局(可用于备赛蓝桥杯Web应用开发)
前端·css·职场和发展·蓝桥杯·前端框架·html5·媒体
Dxy12393102161 小时前
HTML常用标签详解
前端·html
毛骗导演1 小时前
@tencent-weixin/openclaw-weixin 插件深度解析(一):认证与会话管理机制
前端·架构
spencer_tseng1 小时前
Vue node_modules
javascript·vue.js