在react中使用highlight.js將頁(yè)面上的代碼高亮的方法
通過(guò) highlight.js 庫(kù)實(shí)現(xiàn)對(duì)文章正文 HTML 中的代碼元素自動(dòng)添加語(yǔ)法高亮,highlight.js官方文檔
下載highlight.js
npm i highlight.js
導(dǎo)入highlight.js
import hljs from 'highlight.js'
import 'highlight.js/styles/vs2015.css'
?
用highlight.js
? useEffect(() => {
? ? // 配置 highlight.js
? ? hljs.configure({
? ? ? // 忽略未經(jīng)轉(zhuǎn)義的 HTML 字符
? ? ? ignoreUnescapedHTML: true
? ? })
? ? // 獲取到內(nèi)容中所有的code標(biāo)簽
? ? const codes = document.querySelectorAll('pre code')
? ? codes.forEach((el) => {
? ? ? // 讓code進(jìn)行高亮
? ? ? hljs.highlightElement(el as HTMLElement)
? ? })
? }, [])實(shí)例代碼
import hljs from 'highlight.js'
import 'highlight.js/styles/vs2015.css'
import { useEffect } from 'react'
export default function Question () {
? useEffect(() => {
? ? // 配置 highlight.js
? ? hljs.configure({
? ? ? // 忽略未經(jīng)轉(zhuǎn)義的 HTML 字符
? ? ? ignoreUnescapedHTML: true
? ? })
? ? // 獲取到內(nèi)容中所有的code標(biāo)簽
? ? const codes = document.querySelectorAll('.dg-html pre code')
? ? codes.forEach((el) => {
? ? ? // 讓code進(jìn)行高亮
? ? ? hljs.highlightElement(el as HTMLElement)
? ? })
? }, [])
? const content = `
?? ?<pre>
?? ? ?<code>console.log(abc)</code>
?? ? ?<code>console.log(abc)</code>
?? ?</pre>
?? ?<h3>nihoa</h3>
?? ?<pre>
?? ? ?<code>console.log(abc);xxx.forEach(item=>{console.log(1)})</code>
?? ?</pre>
?? ?`
? return (
? ? <div className="dg-html">
? ? ? Question
? ? ? <div dangerouslySetInnerHTML={{ __html: content }} />
? ? </div>
? )
}到此這篇關(guān)于在react中使用highlight.js將頁(yè)面上的代碼高亮的方法的文章就介紹到這了,更多相關(guān)react highlight.js代碼高亮內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
React數(shù)據(jù)傳遞之組件內(nèi)部通信的方法
這篇文章主要介紹了React數(shù)據(jù)傳遞之組件內(nèi)部通信的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
React報(bào)錯(cuò)信息之Expected?an?assignment?or?function?call?and?
這篇文章主要介紹了React報(bào)錯(cuò)之Expected?an?assignment?or?function?call?and?instead?saw?an?expression,下面有兩個(gè)示例來(lái)展示錯(cuò)誤是如何產(chǎn)生的,需要的朋友可以參考下2022-08-08

