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 校验)。

相关推荐
静小谢27 分钟前
前后台一起部署,vite配置笔记base\build
前端·javascript·笔记
用户47949283569151 小时前
改了CSS刷新没反应-你可能不懂HTTP缓存
前端·javascript·面试
还好还好不是吗1 小时前
老项目改造 vue-cli 2.6 升级 rsbuild 提升开发效率300% upupup!!!
前端·性能优化
sumAll1 小时前
别再手动对齐矩形了!这个开源神器让 AI 帮你画架构图 (Next-AI-Draw-IO 体验)
前端·人工智能·next.js
OpenTiny社区1 小时前
2025OpenTiny星光ShowTime!年度贡献者征集启动!
前端·vue.js·低代码
wangan0941 小时前
不带圆圈的二叉树
java·前端·javascript
狗哥哥1 小时前
从零到一:打造企业级 Vue 3 高性能表格组件的设计哲学与实践
前端·vue.js·架构
疯狂平头哥1 小时前
微信小程序真机预览-数字不等宽如何解决
前端
Drift_Dream1 小时前
前端趣味交互:如何精准判断鼠标从哪个方向进入元素?
前端
hqk1 小时前
鸿蒙ArkUI:状态管理、应用结构、路由全解析
android·前端·harmonyos