Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 服务器上的语法高亮显示_Javascript_Reactjs_Next.js_Server Side Rendering - Fatal编程技术网

Javascript 服务器上的语法高亮显示

Javascript 服务器上的语法高亮显示,javascript,reactjs,next.js,server-side-rendering,Javascript,Reactjs,Next.js,Server Side Rendering,我想突出显示代码块。我目前正在使用prismjs。问题是,我突出显示了多个代码块,页面在我速度不太慢的PC上加载需要5秒钟以上 如果我突出显示prism代码,加载几乎是即时的。所以我假设问题是突出显示代码 如何在服务器上渲染代码高亮显示(服务器端渲染) 我正在react应用程序中使用nextjs 9.5.*。我没有问题改成另一个突出显示库。虽然你的问题已经6个月了,我想你已经明白了,但我可以给你一个建议。我不确定性能优势本身(它构建在PRISMJ之上),但它支持SSR和SSG(根据我的经验,使用

我想突出显示代码块。我目前正在使用prismjs。问题是,我突出显示了多个代码块,页面在我速度不太慢的PC上加载需要5秒钟以上

如果我突出显示prism代码,加载几乎是即时的。所以我假设问题是突出显示代码

如何在服务器上渲染代码高亮显示(服务器端渲染)


我正在react应用程序中使用nextjs 9.5.*。我没有问题改成另一个突出显示库。

虽然你的问题已经6个月了,我想你已经明白了,但我可以给你一个建议。我不确定性能优势本身(它构建在PRISMJ之上),但它支持SSR和SSG(根据我的经验,使用裸PRISMJ存在问题)。

我选择了重新键入突出显示。我让它同时适用于浏览器和服务器,你可以在这篇PR中看到这个例子:谢谢你的提示,
重新键入highlight
看起来很有趣(虽然在使用bundlephobia时有点重;但我想这是你的PR的重点)。JavaScript和TypeScript大约有100kB(我想当时常见的捆绑包大约是90kB)。prism的捆绑包有多大?您使用了多少种语言?Bundlephobia显示了274KB用于
重键入突出显示
,22KB用于
PrismReact渲染器
,6.5kB用于裸
Prismjs
。但这可能不是正确的度量,因为a)这在很大程度上取决于每个库如何导入语言模块(我认为默认情况下,
PrismJS
不需要任何语言模块,这就是为什么它这么小的原因)b)考虑到SSR或SSG,这没有多大关系,因为库不必包含在客户端包中(至少在重新使用之前).Reype highlight默认情况下也不需要任何语言。要进行更仔细的比较,您可能需要检查“重新键入棱镜”。关于reype/unifiedjs的好处是,您可以为降价链接转换。