我已经使用ReactJS创建了一个元素并将其附加到div
容器,然后使用jQuery.remove()
删除了相同的元素。
我是否需要卸载使用React创建的节点?
任何帮助将不胜感激!
答案 0 :(得分:3)
是的,你应该这样做。您可以通过
删除元素React.unmountComponentAtNode(document.getElementById('divsId'));
你要删除元素的div必须是你原来追加它的那个。
答案 1 :(得分:1)
干扰DOM会导致不必要的重新绘制和重绘,这些都是昂贵的过程。最好的方法是设置一个这样的标志:
getInitialState() {
isVisible: false
}
toggleVisiblity() {
var {isVisible} = this.state
this.setState({isVisible: !isVisible})
}
render() {
if(isVisible)
var display = <h2> Your content </h2>
return(
<button onClick={this.toggleVisibility}> Click here </button>
{display}
)
}
当isVisible为false时,React会自动卸载,当它为true时,它会挂载。这是一个很好的做法,甚至可以添加动画。