如果要使用 React 开发一个简单编辑器或展示一个包含 html 元素的富文本内容时,就需要用到 dangerouslySetInnerHTML
这个属性,很类似 Vue 中的 v-html
。
dangerouslySetInnerHTML 用法
const Component = ({ content }) => {
return (
<div
className="content-box"
contentEditable="true"
dangerouslySetInnerHTML={{ __html: content }}
></div>
)
}
contentEditable="true"
的作用是可以让 div 想 textarea 一样可编辑,基本上所有富文本编辑器都会使用这一属性。
注意:使用 dangerouslySetInnerHTML 插入 HTML 可能会导致网站被 XSS 攻击,为了安全最好是把传入的 content 过滤一下,去除其中的 script 相关内容。
欢迎访问:天问博客