React中渲染html结构---dangerouslySetInnerHTML
warning:
这篇文章距离上次修改已过201天,其中的内容可能已经有所变动。
在React中,你可以使用dangerouslySetInnerHTML
属性来渲染HTML结构。这个属性名字很长,所以通常我们会把它和一个简单的别名一起使用,比如html
。
这里是一个简单的例子:
function createMarkup(html) {
return { __html: html };
}
function MyComponent({ htmlContent }) {
return (
<div dangerouslySetInnerHTML={createMarkup(htmlContent)} />
);
}
// 使用组件
const htmlContent = '<strong>这是粗体文本</strong>';
ReactDOM.render(<MyComponent htmlContent={htmlContent} />, document.getElementById('root'));
在这个例子中,MyComponent
接收一个htmlContent
属性,它是将要被渲染的HTML字符串。createMarkup
函数接收HTML字符串并返回一个对象,这个对象有一个特殊的__html
属性,它包含了原始的HTML。
dangerouslySetInnerHTML
属性接收这个对象,并把它的HTML内容设置到组件的innerHTML中。
请注意,使用dangerouslySetInnerHTML
可能会带来跨站脚本攻击(XSS)的风险,因此只在你能够确信内容是安全的情况下使用它。如果你需要渲染用户提供的内容,请确保对内容进行清洗处理,例如使用库如DOMPurify。
评论已关闭