在元素上设置元素的innerHTML与在元素上设置危险地设置InnerHTML属性有什么“幕后”区别?假设为简单起见,我正在对事物进行适当的消毒。
例:
var test = React.createClass({
render: function(){
return (
<div contentEditable='true' dangerouslySetInnerHTML={{ __html: "Hello" }}></div>
);
}
});
与
var test = React.createClass({
componentDidUpdate: function(prevProp, prevState){
this.refs.test.innerHTML = "Hello";
},
render: function(){
return (
<div contentEditable='true' ref='test'></div>
);
}
});
我做的事情比上面的示例复杂一些,但总体思路是相同的
dangerouslySetInnerHTML
以下代码之间的区别:webpackbin.com/bins/-KepHa-AMxQgGxOUnAac-调出innerHTML方法的速度几乎快一倍(请参阅webpackbin中的控制台)