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>

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

相关推荐
一 乐19 分钟前
点餐|智能点餐系统|基于java+ Springboot的动端的点餐系统小程序(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·小程序·论文
bitbitDown1 小时前
从零打造一个 Vite 脚手架工具:比你想象的简单多了
前端·javascript·面试
liangshanbo12151 小时前
CSS 数学函数完全指南:从基础计算到高级动画
前端·css
码上成长2 小时前
GraphQL:让前端自己决定要什么数据
前端·后端·graphql
冴羽3 小时前
为什么在 JavaScript 中 NaN !== NaN?背后藏着 40 年的技术故事
前端·javascript·node.js
久爱@勿忘3 小时前
vue下载项目内静态文件
前端·javascript·vue.js
前端炒粉3 小时前
21.搜索二维矩阵 II
前端·javascript·算法·矩阵
合作小小程序员小小店3 小时前
web网页开发,在线%台球俱乐部管理%系统,基于Idea,html,css,jQuery,jsp,java,ssm,mysql。
java·前端·jdk·intellij-idea·jquery·web
不爱吃糖的程序媛3 小时前
Electron 应用中的系统检测方案对比
前端·javascript·electron
泷羽Sec-静安3 小时前
Less-9 GET-Blind-Time based-Single Quotes
服务器·前端·数据库·sql·web安全·less