Una delle caratteristiche chiave di un blog di programmazione sono i blocchi di codice. Non devi formattarli usando un evidenziatore di sintassi, ma se lo fai rende i tuoi blog molto più belli. Può anche migliorare la leggibilità del tuo codice.
Questo articolo ti mostrerà come usare react-syntax-evidenziatore per evidenziare i blocchi di codice in React. Creerai un componente di blocco di codice in grado di evidenziare il codice passato utilizzando la sintassi del linguaggio fornito.
Evidenziazione della sintassi Con react-syntax-evidenziatore
L'evidenziatore della sintassi di reazione consente di evidenziare il codice utilizzando React. A differenza di altri evidenziatori di sintassi, react-syntax-highlighter non si basa su ComponentDidUpdate o ComponentDidMount per inserire il codice evidenziato nel DOM usando pericolosamenteSetInnerHTML.
Questo approccio è pericoloso perché espone un'applicazione a attacchi di scripting tra siti.
Invece, usa un albero della sintassi per costruire il DOM virtuale e lo aggiorna solo con le modifiche.
Il componente utilizza PrismJS e Highlight.js in background. Puoi scegliere di utilizzare entrambi per evidenziare il tuo codice. È molto facile da usare in quanto fornisce uno stile pronto all'uso.
Il componente react-syntax-highlighter accetta il codice, la lingua e lo stile come prop. Il componente accetta anche altre opzioni di personalizzazione. Li puoi trovare nel documentazione dell'evidenziatore di sintassi reagire.
Utilizzando il componente react-syntax-evidenziatore
Per iniziare a utilizzare l'evidenziatore della sintassi di reazione in React, installalo tramite npm.
npm installare evidenziatore di sintassi di reazione --Salva
Crea un nuovo componente chiamato CodeBlock.js nella tua applicazione React e importa evidenziatore di sintassi di reazione:
importare Evidenziatore di sintassi da 'evidenziatore di sintassi di reazione';
importare {docco} da 'react-syntax-evidenziatore/dist/esm/styles/hljs';
cost CodeBlock = ({codestring}) => {
Restituzione (
<Sintassi Linguaggio evidenziatore="javascript" stile={docco}>
{stringa di codice}
</SyntaxHighlighter>
);
};
Il componente SyntaxHighlighter accetta la lingua e lo stile da utilizzare. Prende anche la stringa di codice come contenuto.
È possibile eseguire il rendering del componente sopra come segue:
cost App = () => {
cost codiceStringa = `
cost Quadrato = (n) => Restituzione n * n
`
Restituzione(
<CodeBlock codestring={codeString}/>
)
}
È importante notare che l'uso di react-syntax-highlighter può aumentare le dimensioni della build, quindi se necessario, puoi importare la build leggera. La build leggera, tuttavia, non ha stili predefiniti.
Dovrai anche importare e registrare le lingue che desideri utilizzando il file registroLingua funzione esportata dalla build leggera.
importare { Luce come Evidenziatore di sintassi } da 'evidenziatore di sintassi di reazione';
importare js da 'react-syntax-highlighter/dist/esm/languages/hljs/javascript';
SyntaxHighlighter.registerLanguage('javascript', js);
Questo componente usa Highlight.js per evidenziare il codice.
Per usare invece PrismJS, importalo dal pacchetto react-syntax-highlighter in questo modo:
importare { Prisma come Evidenziatore di sintassi } da "evidenziatore di sintassi di reazione";
importare { vscDarkPlus } da "react-syntax-evidenziatore/dist/esm/styles/prism";
Per la build della luce prisma, importa PrismLight e registra la lingua che stai utilizzando.
importare {Luce Prisma come Evidenziatore di sintassi } da 'evidenziatore di sintassi di reazione';
importare jsx da 'react-syntax-evidenziatore/dist/esm/languages/prism/jsx';
importare prisma da 'react-syntax-evidenziatore/dist/esm/styles/prism/prism';
SyntaxHighlighter.registerLanguage('jsx', jsx);
L'uso del prisma è vantaggioso, specialmente quando si evidenzia jsx perché react-syntax-highlighter non lo supporta completamente.
Aggiunta di numeri di riga al blocco di codice
Ora che sai come evidenziare un blocco di codice, puoi iniziare ad aggiungere funzionalità extra come i numeri di riga.
Con react-syntax-evidenziatore, devi solo passare showLineNumbers al componente SyntaxHighlighter e impostarlo su true.
<Sintassi Linguaggio evidenziatore="javascript" style={docco} showLineNumbers="VERO">
{stringa di codice}
</SyntaxHighlighter>
Il componente ora mostrerà i numeri di riga accanto al tuo codice.
Utilizzo di stili personalizzati nel componente
Anche se react-syntax-highlighter fornisce uno stile, a volte potrebbe essere necessario personalizzare i blocchi di codice.
Per questo, il pacchetto ti consente di passare in linea Stili CSS al prop customStyle come mostrato di seguito:
<Sintassi Linguaggio evidenziatore="javascript" style={vscDarkPlus} customStyle={{borderRadius: "5px", colore di sfondo: "#001E3C"}} >
{stringa di codice}
</SyntaxHighlighter>
Il blocco di codice evidenziato avrà un raggio del bordo e un colore di sfondo personalizzati in questo esempio.
L'importanza dell'evidenziazione della sintassi
Puoi usare il pacchetto react-syntax-highlighter per evidenziare il codice in React. Puoi utilizzare la versione light per ridurre le dimensioni della build e personalizzare i blocchi di codice usando i tuoi stili.
L'evidenziazione dei frammenti di codice rende il tuo codice bello, migliora la sua leggibilità e lo rende più accessibile ai lettori.