HTML escaping in React
To output fixed content in JSX, directly use UTF-8 characters {code...}, use HTML escape characters {code...} or decimal escape characters {code...} Escape of dynamic content, but if you add a layer of curly brackets outside, in order to prevent XSS from escaping the escaped character entities again, in this article we will share with you the HTML escaping method in React.
-
Use UTF-8 characters directly
<p>版权 ©</p>
Copy after loginCopy after login -
Use HTML escape characters
<p>版权 ©</p>
Copy after loginCopy after loginor Decimal escape characters
<p>版权 ©</p>
Copy after loginCopy after login
Escape of dynamic content
But if you add a layer of curly brackets outside, react will use the escaped characters to prevent xss Character entities are escaped again
React will escape all strings to be displayed to the DOM to prevent XSS. Therefore, if JSX contains escaped entity characters, such as © (©), it will not be displayed correctly in the final DOM because React automatically escapes the special characters in ©.
<p>{'版权 ©'}</p>
Error output
版权 ©
Correct writing:
-
Using UTF-8 characters directly can still output correctly
<p>{'版权 ©'}</p>
Copy after loginCopy after login -
The safe way is to use the corresponding Unicode code
<p>{'版权 \u00a9'}</p>
Copy after loginCopy after login -
Use fromCharCode
<p>{'版权 ' + String.fromCharCode(169)}</p>
Copy after loginCopy after login -
Use array assembly
<p>{['版权 ', <span>©</span>]}</p>
Copy after loginCopy after login -
Use dangerouslySetInnerHTML to avoid React escape characters
<p dangerouslySetInnerHTML={{ __html: '版权 ©' }} />
Copy after loginCopy after login
Reference
-
JSX Gotchas
Deep into the react technology stack
Output fixed content in JSX
-
Use UTF-8 characters directly
<p>版权 ©</p>
Copy after loginCopy after login -
Use HTML escape characters
<p>版权 ©</p>
Copy after loginCopy after loginor decimal escape characters
<p>版权 ©</p>
Copy after loginCopy after login
Escape of dynamic content
But if you add a layer of braces outside, react will escape the escaped character entity again in order to prevent xss
React will escape all strings to be displayed in the DOM to prevent XSS. Therefore, if JSX contains escaped entity characters, such as © (©), it will not be displayed correctly in the final DOM because React automatically escapes the special characters in ©.
<p>{'版权 ©'}</p>
Error output
版权 ©
Correct writing:
-
Using UTF-8 characters directly can still output correctly
<p>{'版权 ©'}</p>
Copy after loginCopy after login -
The safe way is to use the corresponding Unicode code
<p>{'版权 \u00a9'}</p>
Copy after loginCopy after login -
Use fromCharCode
<p>{'版权 ' + String.fromCharCode(169)}</p>
Copy after loginCopy after login -
Use array assembly
<p>{['版权 ', <span>©</span>]}</p>
Copy after loginCopy after login -
Use dangerouslySetInnerHTML to avoid React escape characters
<p dangerouslySetInnerHTML={{ __html: '版权 ©' }} />
Copy after loginCopy after login
The above content is the HTML escape writing method in React, I hope it can help everyone.
Related recommendations:
What are the ways to write components in React
The difference between setState in React and Preact
The above is the detailed content of HTML escaping in React. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Guide to HTML Table Layout. Here we discuss the Values of HTML Table Layout along with the examples and outputs n detail.

Guide to HTML Input Placeholder. Here we discuss the Examples of HTML Input Placeholder along with the codes and outputs.

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Vue.js is suitable for small and medium-sized projects and fast iterations, while React is suitable for large and complex applications. 1) Vue.js is easy to use and is suitable for situations where the team is insufficient or the project scale is small. 2) React has a richer ecosystem and is suitable for projects with high performance and complex functional needs.

HTML defines the web structure, CSS is responsible for style and layout, and JavaScript gives dynamic interaction. The three perform their duties in web development and jointly build a colorful website.

HTML5 Interview Questions 1. What are HTML5 multimedia elements 2. What is canvas element 3. What is geolocation API 4. What are Web Workers

React combines JSX and HTML to improve user experience. 1) JSX embeds HTML to make development more intuitive. 2) The virtual DOM mechanism optimizes performance and reduces DOM operations. 3) Component-based management UI to improve maintainability. 4) State management and event processing enhance interactivity.

WebdevelopmentreliesonHTML,CSS,andJavaScript:1)HTMLstructurescontent,2)CSSstylesit,and3)JavaScriptaddsinteractivity,formingthebasisofmodernwebexperiences.
