dangerouslySetInnerHTML,React中显示html代码

dangerouslySetInnerHTML ,危险的设置内部HTML。"永远不要相信用户的输入"。

当用户输入或者获取到的数据是一段HTML代码的时候,dangerouslySetInnerHTML就可以把这一段代码变成HTML,然后插入到某个地方,类似JS中的innerHTML

1、怎么用

javascript 复制代码
const [description,setDescription] = useState('');

<div dangerouslySetInnerHTML={{__html:description}}></div> 

2、为什么要这么用

使用 innerHTML 可能会导致 cross-site scripting (XSS) 攻击。开发者在执行"不安全"的操作的时候应该清楚地知道他们自己的意图。dangerouslySetInnerHTML 这个 prop 的命名是故意这么设

计的,以此来警告,它的 prop 值( 一个对象而不是字符串 )应该被用来表明净化后的数据。警示程序员,不要随意的使用该属性。

这么做的意义在于,{__html:...} 背后的目的是表明它会被当成 "type/taint" 类型处理。 这种包裹对象,可以通过方法调用返回净化后的数据,随后这种标记过的数据可以。注意__html是两个_被传递给 dangerouslySetInnerHTML。

这个功能主要被用来与 DOM 字符串操作类库一起使用,所以提供的 HTML 必须要格式清晰(例如:传递 XML 校验)。

相关推荐
薛定猫AI34 分钟前
【深度解析】从 Antigravity 更新看 Agent IDE 的工程化演进:权限、沙盒、MCP 与模型治理
前端·javascript·ide
漂流瓶jz7 小时前
总结CSS组件化演进之路:命名规范/CSS Modules/CSS in JS/原子化CSS
前端·javascript·css
踩着两条虫8 小时前
「AI + 低代码」的可视化设计器
开发语言·前端·低代码·设计模式·架构
Jagger_8 小时前
项目上线忙碌结束之后,为什么总想找点事做?
前端
GalenZhang8888 小时前
OpenClaw 配置多个飞书账号实战指南
前端·chrome·飞书·openclaw
萌新小码农‍9 小时前
python装饰器
开发语言·前端·python
threelab10 小时前
Three.js 初中数学函数可视化 | 三维可视化 / AI 提示词
开发语言·前端·javascript·人工智能·3d·着色器
爱学习的程序媛10 小时前
浏览器工作原理全景解析
前端·浏览器·web
我是若尘11 小时前
用 Git Worktree 同时开多个需求,不用来回 stash
前端
IT_陈寒11 小时前
Vue的v-for为什么不加key也能工作?我差点翻车
前端·人工智能·后端