Gibt es einen Unterschied "hinter den Kulissen" zwischen dem Festlegen der innerHTML eines Elements und dem Festlegen der Eigenschaft gefährliche.SetInnerHTML für ein Element? Angenommen, ich desinfiziere die Dinge der Einfachheit halber ordnungsgemäß.
Beispiel:
var test = React.createClass({
render: function(){
return (
<div contentEditable='true' dangerouslySetInnerHTML={{ __html: "Hello" }}></div>
);
}
});
vs.
var test = React.createClass({
componentDidUpdate: function(prevProp, prevState){
this.refs.test.innerHTML = "Hello";
},
render: function(){
return (
<div contentEditable='true' ref='test'></div>
);
}
});
Ich mache etwas etwas komplizierteres als das obige Beispiel, aber die Gesamtidee ist dieselbe
dangerouslySetInnerHTML
: webpackbin.com/bins/-KepHa-AMxQgGxOUnAac - zeigt, dass die innerHTML-Methode fast doppelt so schnell ist (siehe Konsole im Webpackbin)