我知道直接在React中操作DOM不是一个好的做法,因为React协调引擎在比较虚拟DOM和真实DOM时会影响性能。
但是如果我像这样做呢?
这里只是展示情景以解释问题,不需要针对特定情景回答,而是谈论这种做法的缺点
情景:1
state = {
innerHTML : ""
}
document.getElementById("test").innerHTML = this.state.innerHTML
handleChange(){
//...handles change in state
}
场景:2
state = {
color:"red"
}
document.getElementById("test").style.color = this.state.color
handleChange(color){
this.setState({color})
}
在这种情况下,React知道它需要重新渲染,因为我正在改变状态,从而保持虚拟DOM和真实DOM的一致性。
那么在所有这些情况下,如果我可以使用状态来维护一致性并对真实DOM进行更改,是否仍然不建议以这种方式更改真实DOM?