我知道直接在react中操作DOM并不是一个好习惯。比较虚拟DOM和真实DOM时,反应协调引擎会影响性能]
但是如果我做这样的事情怎么办?
state = {
innerHTML : ""
}
document.getElementById("test").innerHTML = this.state.innerHTML
handleChange(){
//...handles change in state
}
在这种情况下,React意识到它需要重新渲染,因为我正在通过保持虚拟和真实DOM的一致性来更改状态。
在这种情况下,以这种方式更改真实的DOM仍然不是一个好主意吗?
在那种情况下,您应该使用innerHTML
:而不是直接设置dangerouslySetInnerHTML
:
dangerouslySetInnerHTML