我知道在 React 中直接操作 DOM 并不是一个好的做法。由于在比较虚拟 DOM 和真实 DOM 时,react 协调引擎会影响性能
但是如果我做这样的事情呢?
显示的场景仅用于解释问题。对于这种特定情况不需要答案,但这种做法一般都有缺点
场景: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 意识到它需要重新渲染,因为我正在更改状态,从而保持 Virtual DOM 和 Real DOM 的一致性。
那么在所有这些我可以使用状态来保持一致性并对真实 DOM 进行更改的情况下,以这种方式对真实 DOM 进行更改仍然是一个坏主意吗?