非dom标准属性,也就是说dom标准里面没有规定的属性,react引入了三个非dom属性,如下:dangerouslySetInnerHTML、ref、key
1、概念
我这次先介绍非DOM属性:dangerouslySetInnerHTML
从字面意思,危险的设置内部html,这个属性的作用就是在jsx中,直接插入html代码
我们为什么用这个属性插入html代码呢?而不是在编写代码的时候直接写入呢?因为有的时候我们在编写代码的时候,无法确定要插入什么代码,也就是说这部分html代码是动态生成的。
或者说不是由我们来编写的
2、示例
dangerouslySetInnerHTML 是 React 为浏览器 DOM 提供 innerHTML 的替换方案。
通常来讲,使用代码直接设置 HTML 存在风险,因为很容易无意中使用户暴露于跨站脚本(XSS)的攻击。因此,你可以直接在 React 中设置 HTML,但当你想设置 dangerouslySetInnerHTML 时,需要向其传递包含 key 为 __html 的对象,以此来警示你
如下代码所示:
function createMarkup() {
return {__html: 'First · Second'};
}
function MyComponent() {
return <div dangerouslySetInnerHTML={createMarkup()} />;
}
欧克,现在你应该会使用这个非DOM属性了。
祝大家变得更强!