Home > Article > Web Front-end > How to Safely Inject HTML Variables into JSX with `dangerouslySetInnerHTML`?
Embedding React Variables in JSX: A Magic Trick with dangerouslySetInnerHTML
In React, seamlessly integrating HTML with variables within your JSX code can be a tricky business. Suppose you have a React variable containing HTML markup, like:
var thisIsMyCopy = '<p>copy copy copy <strong>strong copy</strong></p>';
To insert this HTML into your React component, you might be tempted to do something like:
render: function() { return ( <div className="content">{thisIsMyCopy}</div> ); }
However, this approach will not magically render the HTML as you expect. To do that, you need to employ a special React property: dangerouslySetInnerHTML.
render: function() { return ( <div className="content" dangerouslySetInnerHTML={{__html: thisIsMyCopy}}></div> ); }
With dangerouslySetInnerHTML, React will treat the variable's value as trusted HTML and render it directly. This allows you to dynamically insert HTML snippets into your component, providing flexibility and efficiency.
Caution: Use with Care
dangerouslySetInnerHTML is a powerful tool, but it comes with a safety warning. Because it allows you to directly embed HTML into your React application, it can potentially introduce security vulnerabilities, such as XSS attacks. So, always use this property with caution and only when absolutely necessary.
The above is the detailed content of How to Safely Inject HTML Variables into JSX with `dangerouslySetInnerHTML`?. For more information, please follow other related articles on the PHP Chinese website!